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