您好,我是最小起订量测试的新手,很难做一个简单的断言。 我正在使用一个界面
public interface IAdd
{
void add(int a, int b);
}
IAdd
接口(interface)的起订量是:
Mock<IAdd> mockadd = new Mock<IAdd>();
mockadd.Setup(x => x.add(It.IsAny<int>(), It.IsAny<int>()).callback((int a, int b) => { a+b;});
IAdd testing = mockadd.Object;
因为 add
方法是无效的,它不会返回任何值来断言。我如何断言此设置?
最佳答案
为什么要使用模拟?它用于验证 SUT(被测系统)与其依赖项(应该被模拟)正确交互。正确的交互意味着使用正确的参数调用正确的依赖成员。
您应该永远不要断言 mock 返回的值。这是与生产代码无关的虚拟值。您应该断言的唯一值是 SUT 返回的值。 SUT 是您应该为其编写断言的唯一对象。
此外,您应该永远不要测试接口(interface)。因为没有什么可以测试的。接口(interface)只是一个 API 描述。它没有实现。所以,停下来想一想你在这里测试的是什么代码?这是在您的应用程序中执行的真实代码吗?
因此,您应该模拟IAdd
接口(interface),仅用于测试使用IAdd
接口(interface)的对象。
关于c# - 最小起订量测试无效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15062403/