私は5つの異なるテストデータを持ち、(同じ)JUnitテストをループで実行します(5回)。つまり、各ループの繰り返しで、新しいテスト入力データがJSONファイルから読み込まれ、テストが実行されます。これは基本的にAsertEqualsを実行します。ループ内でJunitテストを実行し、その間に障害が発生した場合はさらに先に進みます
JUnitのパラメータ化は、このシナリオに最も適していることをよく知っていますが、しばらくの間、ループ内の異なるテストデータでテストを実行する必要があります。
私のテストは、基本的には、次のようになります。
for (int i = 0; i < tests.length; i++) {
int test = tests[i];
logger.info("---------------------------------------------------------------------------------------------------------------------------------------------------" +
"--------------------------------------------------------------------------------------------------------------------------------------------------------");
logger.info("Executing Test: " + tests[i]);
logger.info("Json file for Test " + tests[i] + " is " + file);
logger.info("---------------------------------------------------------------------------------------------------------------------------------------------------" +
"--------------------------------------------------------------------------------------------------------------------------------------------------------");
FileReader fr = new FileReader(file);
kparams = readKernelParameters.readJsonFile(fr);
setUpMatrices();
setUpKernel();
setUpPSM();
if (!setUpFailure) {
logTestConfiguration();
if (logPsmOutput) {
File testFile = getPSMFileOutput();
write(testFile, Matrix.transpose(velocity));
}
if (testsToBeRun[i] == 5) {
Assert.assertNotEquals("Running PSM Check " + tests[i] + ": ", 0f, (double) Matrix.diff(vOut, velocity, quality)[6], 1.0f);
//here I want to check if above Assert.assertNotEquals was successful, if yes //then I would like to write in log file
} else {
Assert.assertEquals("Running PSM Check " + tests[i] + ": ", 0f, (double) Matrix.diff(vOut, velocity, quality)[6], 1.0f);
//same here
}
} else {
Log.error("Failure in test setup");
Assert.fail("Failure in test setup");
}
}
今、私は次のような質問している:
1)Assert.asserEqualsとAssert.assertNotEqualsが成功した場合、私はどのようにチェックしますか?彼らは空を返すので、私はそれらを条件で書くことはできません。私はそれを確認することができる他の方法はありますか?
2)現在、何が起こるかは、たとえば1つのテストが失敗した場合です。テスト-2では、ループをさらに実行せずに終了します。私はさらに反復して、さらにテストをしたいと思います。
私はこのシナリオのための私のループを知っているが良いではないかもしれないが、私はそれと一緒にしたいものを達成することができますか?
、あなたのテストにあまりにも多くをしようとしています。単体テストは単純で、1つの特殊なケースのシナリオをカバーする必要があります。テストに条件文がある場合は、何かが間違っています –