簡體   English   中英

NSubstitute test for void方法

[英]NSubstitute test for void method

我想驗證參數idStatus是否已分配給myObj實例。 我怎樣才能用 NSubstitute 做到這一點? 我想,如果我能以某種方式驗證UpdateObject的參數,這將是對該方法的一個很好的測試,但不確定如何執行此操作。 有什么想法嗎?

public void SetObjectStatus(int id, int? idStatus)
{
    var myObj = GetObject(id);
    myObj.IdStatus = idStatus;

    UpdateObject(myObj);
}


[TestMethod]
public void SetObjectStatus_Verify()
{
    //Arrange
    int id = 1;
    int? newStatus = 10;

    //Act
    test.SetObjectStatus(id, newStatus);

    //Assert
    //?? I would like to check that myObj.IdStatus equals newStatus (10).
}

這取決於您是要測試內部結構(白盒測試)還是僅測試結果(黑盒測試)。

首先:您的代碼是否為您提供了可以設置GetObject(id)以便它實際返回模擬的靈活性? 如果是這樣,您可以使用var mock = Substitute.For<IYourObject>()設置模擬並調用mock.Received().IdStatus請參閱此處)。

對於第二個:您需要在測試方法中調用GetObject(id)並查看是否存在預期值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM