FakeIteasy CallToアサーションで式ツリーを引数制約として使用できますか?式ツリーを引数制約として使用
:私は心の中でこのような何かをやってユニットテストを持っているFlight flight = repository.Single(f => f.ID == id);
:そうのようなコードで呼び出されている
interface IRepository<TEntity>
{
TEntity Single(Expression<Func<TEntity, bool>> predicate);
:次のシグネチャを持つインタフェース上の方法を考える
Expression<Func<Flight, bool>> myExpression = flight => flight.ID == 1;
A.CallTo(() => repository.Single(
A<Expression<Func<Flight, bool>>>.That.Matches(myExpression)))
.Returns(new Flight());
しかし、これは警告を生成します:タイプargumenを指定してみてください明示的にです。
現在、Ignoredプロパティは理想的ではありません。
私はよりエレガントな解決策はIRepositoryよりも別の抽象化に依存すると考えていますが、これは例えばIFlightRepositoryかもしれません(しかし他の魅力的な選択肢もあります)。 IFlightRepositoryがメソッド "GetFlightById"を公開している場合は、これをテストするのに問題はありません。一方、航空倉庫の実装は、IRepository に非常によく頼ることができます。これは金属に非常に近く、ユニットテストは必要ありませんが、統合テストでカバーする必要があります。しかしこれは私の個人的な意見です。 –
確かに、definitlayには、EntLibのデータアクセスコードを抽象化する別のレイヤーが必要です。私は現在、さまざまな解決策で苦労しています。どんな指針も大変ありがとうございます。 –