【发布时间】:2012-08-18 16:22:35
【问题描述】:
我想使用 Visual Studio 内置的 C# 单元测试功能对各种方法进行单元测试。事情进展得很顺利,但我遇到了一个场景,我想“存根”对特定函数调用的依赖。
也就是说,我有一些方法,格式如下:
public class ClassWithMethodsIWantToUnitTest
{
public void myFcn(object someArg)
{
...
LoggerService.Instance.LogMessage("myMessage");
...
}
}
所以基本上,我希望我的单元测试能够简单地验证对“LogMessage”的调用是否已经发生。我不想实际检查日志文件或任何东西。我想要一种方法来查看 LoggerService 行是否已被击中并执行。
LoggerService 是一个单例,如果可能的话,我不想仅仅为了单元测试而修改代码。
根据这个问题的格式,在我看来应该可以以某种方式控制我的单元测试中的代码。换句话说,有没有办法让我制作一个伪造的 LogMessage 版本,以便我可以将它用于我的单元测试?如果可能的话,我不希望调用“真正的” LogMessage 函数。我只是想测试一下代码是否命中了调用函数的路径。
这有意义吗?这可能吗?
【问题讨论】:
标签: c# unit-testing testing