NSubstitute对此没有内置语法,但可以查询所有
ReceivedCalls()
并手动对此进行断言。
例如:
var errorCalls = logger.ReceivedCalls()
.Where(x => x.GetMethodInfo().Name == nameof(logger.Error))
.Where(x => (x.GetArguments()[0] as string).ToLower().Contains("email"));
Assert.AreEqual(1, errorCalls.Count());
static void ReceivedCallToAny(this object substitute, string methodName, Func<object[], bool> requiredArgs)
有一些帮手,比如
T GetItemAs<T>(object[] items)
访问参数?)