1 / 1 / 2
Регистрация: 06.11.2014
Сообщений: 346
1

Tdd и h2database

08.05.2016, 23:06. Показов 354. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте. Подскажите пожалуйста, я делаю тестирование на бд h2.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package com.configs;
 
import java.util.Properties;
 
import javax.sql.DataSource;
 
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.orm.hibernate5.HibernateTransactionManager;
import org.springframework.orm.hibernate5.LocalSessionFactoryBean;
import org.springframework.transaction.annotation.EnableTransactionManagement;
 
/*
 * This class is same as real HibernateConfiguration class in sources.
 * Only difference is that method dataSource & hibernateProperties
 * implementations are specific to Hibernate working with H2 database.
 */
 
@Configuration
@EnableTransactionManagement
@ComponentScan({ "com.dao" })
public class HibernateTestConfig {
 
    @Bean
    public LocalSessionFactoryBean sessionFactory() {
        LocalSessionFactoryBean sessionFactory = new LocalSessionFactoryBean();
        sessionFactory.setDataSource(dataSource());
        sessionFactory.setPackagesToScan("com.model");
        sessionFactory.setHibernateProperties(hibernateProperties());
        return sessionFactory;
    }
 
    @Bean(name = "dataSource")
    public DataSource dataSource() {
        DriverManagerDataSource dataSource = new DriverManagerDataSource();
        dataSource.setDriverClassName("org.h2.Driver");
        dataSource.setUrl("jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DATABASE_TO_UPPER=FALSE");
        dataSource.setUsername("sa");
        dataSource.setPassword("");
        return dataSource;
    }
 
    private Properties hibernateProperties() {
        Properties properties = new Properties();
        properties.put("hibernate.dialect", "org.hibernate.dialect.H2Dialect");
        //properties.put("hibernate.hbm2ddl.auto", "upgrade");
        return properties;
    }
 
    @Bean
    @Autowired
    public HibernateTransactionManager transactionManager(SessionFactory s) {
        HibernateTransactionManager txManager = new HibernateTransactionManager();
        txManager.setSessionFactory(s);
        return txManager;
    }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
package com.dao.impl;
 
import com.configs.HibernateTestConfig;
import com.dao.BugDAO;
import com.model.Bug;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;
 
import javax.sql.DataSource;
 
import java.util.Date;
 
import static org.junit.Assert.*;
 
 
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes = HibernateTestConfig.class)
@Transactional
public class BugDAOImplTest extends AbstractTestRepository  {
 
    @Autowired
    private BugDAO bugDAO;
 
    @Test
    public void testGetBug() throws Exception {
        assertEquals("yasya",bugDAO.getBug(1).getAutor());
 
    }
 
    @Test
    public void testGetAllBugs() throws Exception {
     
    }
 
    @Test
    public void testAddBug() throws Exception {
 
    }
 
    @Test
    public void testEditBug() throws Exception {
 
    }
}
ошибка происходит в DAO классе
Java
1
2
3
public T getByKey(PK key) {
        return getSession().get(persistentClass, key);
 }
, хотя на реальной бд этот метод работает! Я очень долго мучаюсь, уже идей не осталось. Так что буду рад любому совету!
Ах да совсем забыл , ошибка вот такая:
Кликните здесь для просмотра всего текста
[main] INFO org.springframework.test.context.transaction.TransactionContext - Rolled back transaction for test context [DefaultTestContext@303a5119 testClass = BugDAOImplTest, testInstance = com.dao.impl.BugDAOImplTest@75b3673, testMethod = testGetAllBugs@BugDAOImplTest, testException = org.hibernate.exception.SQLGrammarException: could not prepare statement, mergedContextConfiguration = [MergedContextConfiguration@70325d20 testClass = BugDAOImplTest, locations = '{}', classes = '{class com.configs.HibernateTestConfig}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{}', contextLoader = 'org.springframework.test.context.support.DelegatingSmartContextLoader', parent = [null]]].

org.hibernate.exception.SQLGrammarException: could not prepare statement
at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConv ersionDelegate.java:106)
at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardS QLExceptionConverter.java:42)
at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java :111)
at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTem plate.prepareStatement(StatementPreparerImpl.java:182)
at org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareQueryStatement(S tatementPreparerImpl.java:148)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1927)
at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1896)
at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1874)
at org.hibernate.loader.Loader.doQuery(Loader.java:919)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:3 36)
at org.hibernate.loader.Loader.doList(Loader.java:2610)
at org.hibernate.loader.Loader.doList(Loader.java:2593)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2422)
at org.hibernate.loader.Loader.list(Loader.java:2417)
at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:109)
at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1787)
at org.hibernate.internal.CriteriaImpl.list(CriteriaImpl.java:363)
at com.dao.impl.BugDAOImpl.getAllBugs(BugDAOImpl.java:32)
at com.dao.impl.BugDAOImplTest.testGetAllBugs(BugDAOImplTest.java:49)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav a:43)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java :50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java: 12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:4 7)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17 )
at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks. evaluate(RunBeforeTestMethodCallbacks.java:75)
at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.e valuate(RunAfterTestMethodCallbacks.java:86)
at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringR epeat.java:84)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJ Unit4ClassRunner.java:254)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJ Unit4ClassRunner.java:89)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.e valuate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.ev aluate(RunAfterTestClassCallbacks.java:70)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4 ClassRunner.java:193)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunne r.java:78)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter .java:212)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:68)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:140)
Caused by: org.h2.jdbc.JdbcSQLException: ???°?±?»???†?° "bugs" ???µ ???°?????µ???°
Table "bugs" not found; SQL statement:
select this_.id as id1_0_2_, this_.autor as autor2_0_2_, this_.date as date3_0_2_, this_.description as descript4_0_2_, this_.priority as priority5_0_2_, this_.status as status6_0_2_, this_.title as title7_0_2_, this_1_.userid as userid1_2_2_, user2_.id as id1_4_0_, user2_.email as email2_4_0_, user2_.firstname as firstnam3_4_0_, user2_.lastname as lastname4_4_0_, user2_.login as login5_4_0_, user2_.password as password6_4_0_, user2_1_.role_id as role_id1_3_0_, role3_.id as id1_1_1_, role3_.role as role2_1_1_ from bugs this_ left outer join user_bugs this_1_ on this_.id=this_1_.bugid inner join users user2_ on this_1_.userid=user2_.id left outer join user_roles user2_1_ on user2_.id=user2_1_.user_id left outer join roles role3_ on user2_1_.role_id=role3_.id order by this_.id asc [42102-191]
at org.h2.message.DbException.getJdbcSQLException(DbException.java:345)
at org.h2.message.DbException.get(DbException.java:179)
at org.h2.message.DbException.get(DbException.java:155)
at org.h2.command.Parser.readTableOrView(Parser.java:5349)
at org.h2.command.Parser.readTableFilter(Parser.java:1245)
at org.h2.command.Parser.parseSelectSimpleFromPart(Parser.java:1884)
at org.h2.command.Parser.parseSelectSimple(Parser.java:2032)
at org.h2.command.Parser.parseSelectSub(Parser.java:1878)
at org.h2.command.Parser.parseSelectUnion(Parser.java:1699)
at org.h2.command.Parser.parseSelect(Parser.java:1687)
at org.h2.command.Parser.parsePrepared(Parser.java:443)
at org.h2.command.Parser.parse(Parser.java:315)
at org.h2.command.Parser.parse(Parser.java:287)
at org.h2.command.Parser.prepareCommand(Parser.java:252)
at org.h2.engine.Session.prepareLocal(Session.java:560)
at org.h2.engine.Session.prepareCommand(Session.java:501)
at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1188)
at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:73)
at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:276)
at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$5.doPrepare(StatementPr eparerImpl.java:146)
at org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTem plate.prepareStatement(StatementPreparerImpl.java:172)
... 47 more
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2016, 23:06
Ответы с готовыми решениями:

TDD
TDD - Test Driven Development. Хотелось бы узнать, используете ли вы тесты(те самые TDD) при...

TDD на практике
Доброго времени суток всем! Вот давно болит вопрос, как в реальности использовать TDD? Да, я везде...

Методология TDD
Добрый вечер! Хотелось бы посоветоваться со знатоками. Ситуация такая, что мне досталась тема для...

Google Test и TDD
1) Гугловский фреймворк тестировать умеет только статические библиоткеи? Разве создать обычный...

0
08.05.2016, 23:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
08.05.2016, 23:06
Помогаю со студенческими работами здесь

TDD/BDD и Python
Всем привет. Начали с подругой изучать Python(ей - для работы разработчиком, мне - для работы...

Переход к TDD: мучительно
Я программирую. Программирую я не все свое рабочее время. Ну, может быть, 5 % рабочего времени....

Задание на тестирование (TDD)
На первом этапе реализовать набор тестов для методов, а затем реализовать сами методы: 1. Метод...

Инструменты, поддерживающие методологию TDD
Всем привет! Подскажите пожалуйста, какие инструменты поддерживают разработку через тестирование?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru