具有多个存储库的集成测试服务

时间:2015-04-13 15:59:50

标签: c# entity-framework testing nunit

假设我有一个类EmployeeService,看起来像这样:

public class EmployeeService
{
    private readonly IRepository<Employee> _employeeRepository;

    public EmployeeService(IRepository<Employee> employeeRepository)
    {
        _employeeRepository = employeeRepository;
    }

    ...

    // Relevant methods that deal with operations on employees.

...

_employeeRepositoryDbContext并启用CRUD操作。 DbContext连接到MySQL数据库。

我的集成测试类定义为:

[TestFixture]
public class EmployeeServiceTests
{
    // System under test.
    private EmployeeService _sut;

    [SetUp]
    public void SetUp()
    {
        _sut = new EmployeeService(
                   new Repository<Employee,TestDatabaseContext>(
                       new TestDatabaseContext()));
    }

    ...

    // Tests.

...

TestDatabaseContext初始化为DropCreateDatabaseAlways和一些种子数据。

我有两个问题(第二个与第一个问题相关联):

  1. 数据库在测试之间被删除。为什么?
  2. 如何隔离集成测试?我的服务类依赖于连接到单独数据库的其他服务类(MySQL&amp; MSSQL)。

0 个答案:

没有答案