项目作者: neurospeech

项目描述 :
Entity Framework Mocking using SQL Server LocalDB
高级语言: C#
项目地址: git://github.com/neurospeech/ef-localdb-mock.git
创建时间: 2017-06-02T12:11:57Z
项目社区:https://github.com/neurospeech/ef-localdb-mock

开源协议:MIT License

下载


Entity Framework Mocking using SQL Server LocalDB

Build status

NuGet

  1. Install-Package NeuroSpeech.EFLocalDBMock

Example For xUnit

  1. using NeuroSpeech.EFLocalDBMock;
  2. // Assuming you have `AppDbContext` as your EF DbContext in side your actual application project
  3. // For test purposes, you will have to use AppDbTestContext
  4. // or you can use AppDbTestContext as dependency in your DI container
  5. public class AppDbTestContext : AppDbContext {
  6. // this is important
  7. // since databases are dynamically created and destroyed
  8. // MockDatabaseContext.Current.ConnectionString contains
  9. // correct database for current test context
  10. // MockDatabaseContext.Current will work correctly with async await
  11. // without worrying about passing context
  12. public AppDbTestContext(): base(MockDatabaseContext.Current.ConnectionString)
  13. {
  14. }
  15. }
  16. public class AppDbCleanMigrationConfiguration : DbMigrationsConfiguration<AppDbTestContext>
  17. {
  18. public AppDbCleanMigrationConfiguration()
  19. {
  20. this.AutomaticMigrationDataLossAllowed = true;
  21. this.AutomaticMigrationsEnabled = true;
  22. }
  23. }
  24. public abstract class BaseTest: MockSqlDatabaseContext<AppDbTestContext, AppDbCleanMigrationConfiguration>
  25. {
  26. public BaseTest(ITestOutputHelper writer)
  27. {
  28. this.Writer = writer;
  29. }
  30. protected override void DumpLogs()
  31. {
  32. this.Writer.WriteLine(base.GeneratedLog);
  33. }
  34. public ITestOutputHelper Writer { get; private set; }
  35. }

Now you can derive all your tests from BaseTest and you can use AppDbTestContext