我有一个简单的模拟类 longRunningLibrary 我希望方法 Returns from Moq 输出一些文本(“此方法...”),您可以在以下代码部分中看到:
_longRunningLibrary
.Setup(lrl => lrl.RunForALongTime(30))
.Returns("This method has been mocked!");
所以..我希望这段文本在 resharper 的单元测试 session 部分中输出,但我做不到。如何进行 ?
最佳答案
使用moq你可以这样做:
[Test]
public void MoqSample()
{
var mock = new Mock<ILongRunner>();
mock.Setup(lr => lr.RunForALongTime(It.IsAny<int>()))
.Returns("This method has been mocked!");
ILongRunner longRunner = mock.Object;
Console.WriteLine(longRunner.RunForALongTime(1));
Assert.AreEqual("This method has been mocked!", longRunner.RunForALongTime(2));
Assert.Pass(longRunner.RunForALongTime(3));
}
public interface ILongRunner
{
string RunForALongTime(int i);
}
使用 R# 测试运行器时可以使用 Console.WriteLine(...),不确定使用 VS 时是否如此。
Assert.Pass(...) 打印一条 Success: 消息
关于unit-testing - Resharper 和 Moq 返回方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17169040/