C# 如何用最小起订量测试空隙法?
我是TDD的新手,我还有很多问题,其中一个问题是如何测试void方法 我有一个参数通过refreference传递,我不知道如何测试:(这只是一个测试,不是我真正的方法) 有人能帮忙吗?谢谢 使用包含这两个属性的对象。这将使你的设计更干净,你的工作更干净 编辑:如果你真的想使用moq out参数,你可以找到一个例子,使用一个包含这两个属性的对象。这将使你的设计更干净,你的工作更干净C# 如何用最小起订量测试空隙法?,c#,unit-testing,moq,C#,Unit Testing,Moq,我是TDD的新手,我还有很多问题,其中一个问题是如何测试void方法 我有一个参数通过refreference传递,我不知道如何测试:(这只是一个测试,不是我真正的方法) 有人能帮忙吗?谢谢 使用包含这两个属性的对象。这将使你的设计更干净,你的工作更干净 编辑:如果你真的想使用moq out参数,你可以找到一个例子,使用一个包含这两个属性的对象。这将使你的设计更干净,你的工作更干净 编辑:如果您真的想使用moq out参数,您可以找到一个示例假设userDAO作为依赖项注入,并且可以模拟,我将执
编辑:如果您真的想使用moq out参数,您可以找到一个示例假设
userDAO
作为依赖项注入,并且可以模拟,我将执行以下测试:
userDAO上调用了AssertGetSomething()
cod
==传入的User.cod
用于创建模拟的userDAO
name
==传入的User.Cod
我们过去常常创建mockuserDAO
不过,我同意避免使用ref参数,我建议按照@Tim Cools在另一个答案中的建议进行重构,假设
userDAO
作为依赖项注入,并且可以模拟,我将进行以下测试:
userDAO上调用了AssertGetSomething()
cod
==传入的User.cod
用于创建模拟的userDAO
name
==传入的User.Cod
我们过去常常创建mockuserDAO
不过,我同意避免使用ref参数,我建议按照@Tim Cools在另一个答案中的建议进行重构,只需在调用方法后测试参数中的值,模拟userDAO来控制它返回的值(null、cod、name)在调用方法后测试参数中的值,模拟userDAO来控制它返回的内容(null、cod、name)一个void方法意味着会有某种副作用。如果可能的话,我通常建议避免使用它们,但当您确实需要测试一个时,一般的经验法则是:
实际上,这些断言也应该针对非void方法,也许更多的是为了防止意外的副作用,而不是测试预期的副作用。(依我看,如果可能的话,函数应该没有副作用。)无效方法意味着会有某种副作用。如果可能的话,我通常建议避免使用它们,但当您确实需要测试一个时,一般的经验法则是:
实际上,这些断言也应该针对非void方法,也许更多的是为了防止意外的副作用,而不是测试预期的副作用。(在我看来,如果可能的话,一个函数应该没有副作用。)我现在还不太清楚这个概念。。在我的测试中,我如何模拟我方法中的dao?我将如何模拟在方法中使用的结果?因为我不能从情妇身边经过,他不是他们中的一员!对不起,我还是很傻!您可以将模拟的
userDAO
作为构造函数参数传递给包含ReplaceCenter
方法的类。我现在不太清楚这个概念。。在我的测试中,我如何模拟我方法中的dao?我将如何模拟在方法中使用的结果?因为我不能从情妇身边经过,他不是他们中的一员!对不起,我还是很傻!您可以将模拟的userDAO
作为构造函数参数传递给包含ReplaceCenter
方法的类,如果它们没有通过refreference传递?我还能这样做吗?如果你没有通过引用传递它们,你会返回什么吗?如果是这样,请根据返回值进行测试,如果返回值仅对其他对象起作用,则测试这些依赖项是否使用正确的参数调用,以及它们是否未通过引用传递?我还能这样做吗?如果你没有通过引用传递它们,你会返回什么吗?如果是这样,请根据返回值进行测试,如果返回值仅对其他对象起作用,则测试是否使用正确的参数调用了这些依赖项
public void ReplaceCenter(ref string cod, ref string name)
{
User user = userDAO.GetSomething();
if (user.Cod != null)
{
cod = user.Cod;
}
if (user.Name != null)
{
name = user.Name;
}
}