2016-11-22 27 views
0

所以我有一個控制器操作(MVC 5)的以下單元測試。測試的目的是爲了確保控制器的編輯操作將返回Contact類型的模型:C#單元測試:可以使用條件訪問而不是Debug.Assert嗎?

[TestMethod] 
    public void Edit_ValidContactIdPassed_ShouldReturnEditViewWithContact() 
    { 
     var result = _controller.Edit(1) as ViewResult; 
     result?.ViewData.Model.Should().BeOfType<Contact>(); 
    } 

正如你可以看到我使用的,而不是有條件接入result對象(?):

 Debug.Assert(result != null, "result != null"); 

我認爲條件訪問更具可讀性,但在單元測試的上下文中是否存在任何問題?

+0

看起來像這個問題http://codereview.stackexchange.com/ – tym32167

+0

這取決於你的測試正在測試。如果規範說明必須總是有結果,那麼檢查null可能會隱藏一個錯誤。 –

+0

這個測試的目的是什麼?真正閱讀如何構建適當的方法名稱。 – mybirthname

回答

1

那麼,如果你正在測試的var result和測試必須如果是在這種情況下,你會阻止該錯誤被解僱作爲與條件接入== null你防止潛在NullPointerException

Assert.IsNotNull(result); 

畢竟這不是那麼糟糕:)!

相關問題