デリゲートをパラメーターとして取り、UnsupportedExceptionを取得するメソッドをテストする必要があるまで、私は非常に満足していました。問題はhereとMoq issue listにも記載されています。デリゲートをパラメーターとして使用してメソッドをモックすることをサポートするモックフレームワーク
このような模倣をサポートするフレームワークはありますか?例えば
:
///
/// Interfaces
///
public interface IChannelFactory<T> {
TReturn UseService<TReturn>(Func<T, TReturn> function);
}
public interface IService {
int Calculate(int i);
}
///
/// Test
///
Mock<IChannelFactory<IService>> mock = new Mock<IChannelFactory<IService>>();
// This line results in UnsupportedException
mock.Setup(x => x.UseService(service => service.Calculate(It.IsAny<int>()))).Returns(10);
実際のコードですか、それともサンプルの断片ですか?それは完全に指定されていないので私は尋ねる。たとえば、モックを作成するときに、そこに汎用レベルの別のレベルがあるべきではありませんか? '新しいモック>'? –
ああ、訂正してくれてありがとう。コピー・ペーストではないため、エラーです。 – henginy
セットアップラインで式(service => service.Calculate())を渡します。解決するものは、Func <>オブジェクトなどのデリゲートに渡す必要があります。 – IanNorton