我希望這不會成爲一個愚蠢的問題,但它是我一直想知道的。我希望編寫一個單元測試的方法,它包含一些邏輯來檢查某些值是否爲空。單元測試 - 我應該拆分測試還是進行單個測試?
public void MyMethod(string value1, string value2)
{
if(value1 != null)
{
//do something (throw exception)
}
if(value2 != null)
{
//do something (throw exception)
}
//rest of method
}
我想通過將空值傳遞給方法來測試它。我的問題是我應該爲每個參數創建一個單元測試,還是可以創建一個單元測試來檢查發生了什麼,如果我將value1設置爲null,然後檢查將value2設置爲null時會發生什麼。
即
[TestMethod]
public void TestMyMethodShouldThrowExceptionIfValue1IsNull()
{
//test
}
[TestMethod]
public void TestMyMethodShouldThrowExceptionIfValue2IsNull()
{
//test
}
或
[TestMethod]
public void TestMyMethodWithNullValues()
{
//pass null for value1
//check
//pass null for value2
//check
}
或者它有什麼區別?我想我在某處讀到你應該限制自己每個單元測試的一個斷言。它是否正確?
在此先感謝 的ZAP
這不是一個規則;這是一個判斷呼籲。如果測試是明顯且可讀的,那麼一個函數就可以。否則將它們拆分爲**可讀性**。 – Ray 2010-03-02 19:21:17