我剛完成家庭作業任務,並通過了大學的自動評估。我想爲它做單元測試,現在我知道這是正確的,但練習使用JUnit
。當比較大字符串時,JUnit assertEquals的更詳細的輸出
我學會了如何override and read standard output和simulate standard input。我寫我自己的方法:
public static void simulateIn(final String str) {
// Simulated STDIN
final ByteArrayInputStream in = new ByteArrayInputStream(str.getBytes());
System.setIn(in);
}
我用它如下:
@Test
public void TestOnePlusOne() throws Exception {
simulateIn("1 1 1 1");
// Homework assignment executes here
new Lab01().homework();
// Expected input. I didn't translate it, but it's just a simple calculator
assertEquals("Vyber operaci (1-soucet, 2-rozdil, 3-soucin, 4-podil):\n" +
"Zadej scitanec: \n" +
"Zadej scitanec: \n" +
"Zadej pocet desetinnych mist: \n" +
"1.0 + 1.0 = 2.0\n", outContent.toString());
}
我離開了預期的輸出翻譯,它真的什麼都無所謂它現在說。重要的是,測試失敗,我得到的只是這個:
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running test.TestCalculator
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.097 sec <<< FAILURE!
Results :
Failed tests: TestOnePlusOne(test.TestCalculator): expected:<...desetinnych mist:
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0
這是非常無益的。由於我知道這個分配是正確的,所以這在單元測試中是錯誤的。我可以得到assertEquals
失敗的字符串的完整區別嗎?
你執行此使用'MVN測試'?如果是這樣的maven版本正在使用? – nullpointer
我在netbeans中執行。我對此並不是很有經驗,所以我真的不知道在後臺運行哪些命令。 –