【发布时间】:2018-04-13 11:13:10
【问题描述】:
在接口上检查收到的呼叫时,我可以这样做:
void Main()
{
var logger = Substitute.For<ILogger>();
Test(logger);
logger.Received().Log(Arg.Any<string>());
}
public void Test(ILogger logger)
{
logger.Log("Test");
}
public interface ILogger
{
void Log(string message);
}
如果我注释掉 logger.Log("Test"); 电话,我会得到:
ReceivedCallsException:预期会收到匹配的呼叫:
日志(任何字符串)
实际上没有接到任何匹配的电话。
但是,我最近才发现 NSubstitute 可以替代代表。问题是,我可以让它检查是否调用了委托?
void Main()
{
var logger = Substitute.For<Action<string>>();
Test(logger);
// What.Received().What()?
}
public void Test(Action<string> logger)
{
logger("Test");
}
【问题讨论】:
标签: c# nsubstitute