[英]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.