2016-04-04 4 views
2

に私は私のHibernateセッションへのアクセス:https://stackoverflow.com/a/33881946/272180春ブーツ:この答えのように使用HibernateのSession私の春のブートアプリケーションでユニットテスト

は今、私はまた、ユニットテストでHibernateのSessionにアクセスしたいです。

Springブートアプリケーションの単体テストでデータソースを設定し、Hibernateセッションにアクセスするにはどうすればよいですか?

私は単にそれをAutowireとき、私はorg.hibernate.HibernateException: Could not obtain transaction-synchronized Session for current thread.

オートワイヤリングを取得し、完璧@Service作品を使用しました。

私のユニットテストクラスは、この気圧のようになります。

@RunWith(SpringJUnit4ClassRunner.class) 
@SpringApplicationConfiguration(classes = App.class) 
@WebIntegrationTest 
public class WebTest { 

    @Autowired 
    private SessionFactory sessionFactory; 

    @Autowired 
    private UserService  userService; 

    @Test 
    public void testService() { 

     final List<User> users = userService.getUsers(); 

     // do something with users 
     // ... 

    } 
} 

App.classは春のブートアプリケーションを実行するために使用されるmainメソッドを持つクラスを指します。

答えて

1

実際、テストクラスに@Transactionalを追加するのと同じくらい簡単でした。

その後、通常通りSessionFactoryを使用できます。

関連する問題