的Visual Studio 2013是顯示我的這個代碼覆蓋率(簡化本示例)對象爲失蹤塊:未覆蓋哪些區塊?
據我知道,if
應該有精確兩種狀態。通過並失敗。調試我的測試顯示,每個條件都會執行一次。特異性地與這兩個測試:
[TestMethod]
public void CanNotHaveNegativeServiceWindow()
{
// arrange
var request = new CreateCaseRequest
{
ServiceWindowStart = new DateTime(2014, 12, 31, 12, 00, 00),
ServiceWindowEnd = new DateTime(2014, 12, 31, 11, 00, 00)
};
// act
var result = request.GetValidationErrors();
// assert
Assert.AreEqual(1, result.Count());
}
[TestMethod]
public void CanHaveServiceWindow()
{
// arrange
var request = new CreateCaseRequest
{
ServiceWindowStart = new DateTime(2014, 12, 31, 11, 00, 00),
ServiceWindowEnd = new DateTime(2014, 12, 31, 12, 00, 00)
};
// act
var result = request.GetValidationErrors();
// assert
Assert.AreEqual(0, result.Count());
}
一個測試驗證的該特定if
條件的肯定結果時,其他驗證陰性結果。什麼塊不覆蓋?我錯過了什麼邏輯條件?
如果它們爲空或兩者相等,該怎麼辦? –
@ DanielA.White:其他測試涵蓋了這些情況。如果兩個人都有價值,那麼只會達到「if」。如果他們都相同,那麼這就是'if'的錯誤情況,不是嗎?如同,與其他任何錯誤情況沒有什麼不同? – David
我看到你正在嘗試做什麼(我刪除了我的舊評論)你可以嘗試'如果(ServiceWindowStart.Value> ServiceWindowEnd.Value)'而不是? – dasblinkenlight