Jon*_*Jon 2 .net c# tdd unit-testing moq
正如标题所暗示的那样.将为DataIn中的每个拆分CSV项调用WriteData.我想确定已成功调用WriteData.通过添加回调并对列表执行断言,这仍然是模拟验证.
[Test]
public void DataIn_GoodRead_LoggedToFile()
{
Moq.Mock<IFileLogger> mock;
MyLogic logic = SetupLogic(out mock);
List<string> dataLogged = new List<string>();
mock.Setup(x => x.WriteData(It.IsAny<string>()))
.Callback(delegate(string s) { dataLogged.Add(s); });
logic.DataIn(1, "1,2,3");
Assert.AreEqual(3, dataLogged.Count);
}
Run Code Online (Sandbox Code Playgroud)
不知道你为什么要使用回调.看起来
mock.Setup(x => x.WriteData(It.IsAny<string>())).Verifiable()
...
mock.Verify(x => x.WriteData(It.IsAny<string>()), Times.Exactly(3))
Run Code Online (Sandbox Code Playgroud)
也会这样做.
而且我认为你也可以避免设置,只需使用验证线就可以了
mock.Verify(x => x.WriteData(It.IsAny<string>()), Times.Exactly(3))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
62 次 |
| 最近记录: |