EF5 では、 Migrationsと呼ばれる新しい概念が導入されました。おそらく、Rails や Django アプリケーションで似たようなものを使用していたことでしょう。
マイグレーションは、DB のバージョンをアップグレード/ダウングレードするためのいくつかの機能を持つクラスです。
public partial class VoteTime : DbMigration
{
public override void Up()
{
AddColumn("Votes", "Time", c => c.DateTime(nullable:false, defaultValue:DateTime.UtcNow));
}
public override void Down()
{
DropColumn("Votes", "Time");
}
}
また、コード ファースト アプローチが機能するように、DbContext および DbMigrationsConfiguration 構成クラスをセットアップする必要があります。
テスト目的で導入する必要があるのは、TestDatabaseInitilizer
public class TestDatabaseInitilizer : DropCreateDatabaseAlways<DbContext>
{
}
単体テスト用のテストデータベースの初期化を担当します。
最後に、コンテキストを設定するテスト コードを設計する必要があります。
public class SomeRepositoryTests
{
private DbContext _context;
[SetUp]
public void Setup()
{
Database.SetInitializer(new TestDatabaseInitilizer());
_context = new DbContext("TestContext");
_repository = new SomeRepository(_context);
}
[Test]
public void should_return_some_entities()
{
Assert.That(_repository.Get(), Is.Not.Null);
}
}
必要に応じて、セットアップ コードを基本クラスに移動できます。