如何使用Moq测试void方法?

Otu*_*uyh 1 c# unit-testing moq

我是TDD的新人,我还有很多问题,其中一个问题是如何测试一个无效方法!

我有这个通过refference传递的params,我不知道如何测试:(这只是一个测试,而不是我真正的方法)

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;
        }
    }            
Run Code Online (Sandbox Code Playgroud)

someoen可以帮忙吗?谢谢!

Bro*_*ass 5

假设userDAO被注入为依赖并且可以被模拟我将进行以下测试:

  1. 断言GetSomething()被称为嘲笑userDAO
  2. 断言返回的引用字符串cod==在我们用来创建模拟的User.Cod中传递userDAO
  3. 断言返回的引用字符串name==在我们用来创建模拟的User.Cod中传递userDAO

我同意避免使用ref参数,我建议按@Tim Cools的其他答案中的建议进行重构