4

EF Context と Testenity があるので、次のテストを実行したいと考えています。

TestEntity testEntity = new TestEntity() { Name = "Hello World" };
context.TestEntities.AddObject(testEntity);
// missing Code
Assert.AreEqual(1, context.TestEntities.Count(), "Entity not in context!");

SaveChanges() で動作することはわかっていますが、エンティティをdatasourceに保存したくありません

4

2 に答える 2

4
TestEntity testEntity = new TestEntity() { Name = "Hello World" };
context.TestEntities.AddObject(testEntity);

var entitiesInOSM = context.ObjectStateManager.
        GetObjectStateEntries(EntityState.Added | EntityState.Deleted | EntityState.Modified | EntityState.Unchanged).
        Where(ent => ent.Entity is TestEntity).
        Select(ent => ent.Entity as TestEntity);

Assert.AreEqual(1, entitiesInOSM.Count(), "Entity not in context!");
于 2010-08-04T12:23:18.323 に答える
-1

テストで何を達成しようとしていますか? このテストがここで達成するのは、基になる Entity Framework ContextObject をアサートすることだけです。これは無意味なテストです。

ObjectContext が依存関係にある追加のテストを実行しようとしている場合は、インターフェースを使用して ObjectContext をモックアウトできます。モデルから T4 で生成された ContextObject から抽出した独自のカスタム IObjectContext インターフェイスを作成します。

于 2010-08-04T19:16:19.767 に答える