目的是Verifiable()什么?
如果我验证Mock并将其保留,它仍会验证SetUp.
编辑:我正在使用VerifyAll()因此验证一切的原因.更改为Verify()只有我的.Verifiable() SetUps被检查.
可以测试是否已使用Moq和依赖注入调用方法.但是,是否可以测试类中的一个方法是否在同一个类中调用另一个方法?
例如,我想测试一下,如果我记录某个异常,那么也会记录一条信息消息.
方法是:
public void Error(string message, Exception exception, long logId = 0)
{
var int32 = (int)logId;
Info("Id was converted to an int so that it would fit in the log: " + logId, int32);
Error(message, exception, int32);
}
Run Code Online (Sandbox Code Playgroud)
这是我尝试进行单元测试.测试失败了,有什么办法可以做到吗?
void logging_an_error_with_a_long_id_also_logs_info()
{
var mock = new Mock<ILogger>();
var testedClass = new Logger();
var counter = 0;
testedClass.Error("test" + counter++, new Exception("test" + counter), Int64.MaxValue);
mock.Verify(m => m.Info(It.IsAny<string>(), It.IsAny<int>()));
}
Run Code Online (Sandbox Code Playgroud)
由于Info和Error方法属于同一个类(ClassA),我不相信我可以将ClassA作为依赖项传递给ClassA.那么它不需要测试吗?
我正在对视图模型进行单元测试,并使用带有起订量的 mbunit 来模拟类的私有方法,但我的要求是在测试的断言部分中验证是否调用了另一个方法(这是一个对话框)。单元测试下的方法。