を共有することはできません。依存機能JUnitテストは、私は(この質問のために簡略化)次のテストを持っている静的フィールド
@FixMethodOrder(MethodSorters.JVM)
public class ArticleTest {
private static Article article;
@Test
public void testCreateArticle() {
articleService.create("My article");
article = articleService.findByTitle("My article");
assertNotNull(article);
}
@Test
public void testUpdateArticle() {
article.setTitle("New title");
articleService.save(article);
assertNull(articleService.findByTitle("My article"));
article = articleService.findByTitle("New title");
assertNotNull(article);
}
}
testCreateArticle
が正常に渡しますが、article
がnull
であるため、最初の行でtestUpdateArticle
失敗し、これ投げNPE(article
がnull
ではないと主張した最初の試験でしたが)。
誰もが理解していますか?私はPlay Framework(バイトコードの操作が大好き)でテストを実行するので、これは何とか関連していることに注意してください。
また、依存テストを行うのは悪い練習ですが、IRLはこれではありませんユニットテストが、テストシナリオの一種なので、私はちょうど依存のテストに人々がそれらを好きではない理由を自分で理解しようとする与えたかった;)
しかし、いずれにせよは、静的フィールドテストの間で共有されるようになっています、 私が間違っている?
アップデート:私はtestUpdateArticle()
の資料を再作成することができることを知っているが、実際のテストは(多分私はMVCEの作成に失敗した...)複雑です。最初のものは何も特別なものは必要なく、2番目のものは作成済みの記事が必要で、3番目のものは作成された更新済みの記事などが必要です。私はテストの間に状態を保つことにより、毎回すべてのDB操作をやり直すことを避けようとしました。
その場合、TestNGをよく使うと、それは依存テストをサポートします。 – user1516873