我有一个简单的模拟类 longRunningLibrary 我希望从 Moq 中返回的方法输出一些文本(“此方法...”),您可以在以下代码部分中看到:
_longRunningLibrary
.Setup(lrl => lrl.RunForALongTime(30))
.Returns("This method has been mocked!");
所以.. 我希望在 resharper 的单元测试会话部分中输出此文本,但我做不到。如何进行 ?
我有一个简单的模拟类 longRunningLibrary 我希望从 Moq 中返回的方法输出一些文本(“此方法...”),您可以在以下代码部分中看到:
_longRunningLibrary
.Setup(lrl => lrl.RunForALongTime(30))
.Returns("This method has been mocked!");
所以.. 我希望在 resharper 的单元测试会话部分中输出此文本,但我做不到。如何进行 ?
使用最小起订量,您可以这样做:
[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: 消息
另一种选择是使用回调:
_longRunningLibrary
.Setup(lrl => lrl.RunForALongTime(30))
.Returns("This method has been mocked!")
.Callback<int>( p => Console.WriteLine("Called with: {0}", p);