繁体   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