Я пытаюсь проверить вызов метода, который принимает параметр типа Expression<Func<T, U>>
, но я не могу заставить NSubstitute его распознать.Может ли NSubstitute проверять вызовы, которые принимают выражение <T>?
public interface IFoo<T>
{
void DoThing<TProperty>(TProperty i, Expression<Func<T, TProperty>> expression);
}
// this almost works, but throws AmbiguousArgumentException
myFoo.Received(1).DoThing(Arg.Is(10), Arg.Any<Expression<Func<MyClassType, long>>>());
Что myObj? Можете ли вы опубликовать его структуру? –
Как определяется 'myObj', должно быть неактуально. В моем реальном случае 'myObj' реализует интерфейс, который определяет' DoThing'. Он может быть полностью пустым, за исключением одного метода. В моем методе тестирования 'myObj' является подстановкой NSubstitute. – moswald
Я спрашиваю, потому что в моих тестах я не смог воспроизвести поведение, которое вы видите. Однако мои предположения относительно сигнатуры метода DoThing могут быть неправильными. Можете ли вы поделиться определением метода? –