開発者がテストで依存性注入コンテナをブートストラップできるようにするSpringTestフレームワークを使用することをお勧めします。その後、リポジトリをテストに自動配線できます。
これは私がフレームワークを使用した抜粋テストです:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:META-INF/spring/test-context.xml"})
@TransactionConfiguration(defaultRollback=false)
public class CommentRepositoryTest {
@Autowired
private CommentRepository repository;
@Autowired
PostRepository postRepository;
@Test
public void findOneTest(){
Comment comment= repository.findOne(1);
assertNotNull(comment);
assertEquals("John Doe", comment.getAuthor());
}
}
@ContextConfiguration
SpringBeans構成ファイルを指していることに注意してください。これが、ブートストラップされている依存性注入コンテナです。アノテーションは、@Autowired
テスト用に私のリポジトリを注入しています。@TransactionConfiguration
サンドボックスデータベースに対して単体テストを実行できるように、テストをロールバックしないようにSpringに指示します。これにより、ロールバック機能が隠している問題が明らかになる可能性があります。
GitHubでこの構成を示すプロジェクトがあります。
また、SpringTestを使用してjUnitテストを構成する方法を示すビデオチュートリアルも作成しました。
アノテーションを使用したテストの例もあります。@Transactional