我想驗證一個方法的調用,該方法需要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方法簽名的假設可能是錯誤的。你能分享這個方法的定義嗎? –