2

Telerik.JustMock.EntityFrameworkパッケージをインストールしたばかりで、試しています。

私はこれを試しました:

var ctx = EntityFrameworkMock.Create<MyDbContext>().PrepareMock();

var source = new List<MyEntity>()
            {
                new MyEntity(){ Description = "asd" },
                new MyEntity(){ Description = "asd2" },
            };

ctx.MyEntities.Bind(source);

そして、これを行ってデータを取得すると、機能します:

ctx.MyEntities.ToList();

しかし、私が次のことをすると:

ctx.Set<MyEntity>().ToList();

空のコレクションを返します。

私が間違っていることを知っていますか?または、コンテキストが返すコレクションをモックする方法を知っていますか? 私はリポジトリパターンを使用していて、リポジトリからメソッドをテストしたいので、それは特定のコンテキストで動作しています。

ところで、これは私のMyDbContextクラスです:

public class MyDbContext : DbContext{
    public DbSet<MyEntity> MyEntities { get; set; }
}
4

1 に答える 1

2

DbContext をモックするのは、コンテキストが追いついていく可動部分がたくさんあるため、難しい場合があります。インメモリ データ コンテキストのセットアップに役立つライブラリを使用して成功しました。正確な答えではありませんが、他のモッキングフレームワークでストレートモックをしようとすると、多くの問題に遭遇しました

http://effort.codeplex.com/

このライブラリは、nuget パッケージとして入手できます。

于 2015-01-16T13:18:07.973 に答える