Entitity Framework 4.1 - Code First - уровень доступа к данным тестирования модуля - PullRequest
0 голосов
/ 11 августа 2011

Я разработчик .NET и пишу тесты для своего уровня доступа к данным. У меня есть тесты, использующие поддельное хранилище - я добился этого с помощью Moq и Ninject.

Я разбираюсь в модели EntityFramework 4.1 Code First и хотел бы создать прототип для процедур CRUD. Это приложение MVC, поэтому мои сущности не будут отслеживаться контекстом.

Мне кажется, что я пишу тесты, которые внесут изменения в базу данных. Затем мне придется очищать базу данных каждый раз, когда я хочу запустить эти тесты. Это единственный способ проверить CRUD-процедуры?

Спасибо

1 Ответ

1 голос
/ 11 августа 2011

Как вы ожидаете проверить доступ к данным, если у вас нет доступа к данным? Да, доступ к данным должен быть проверен на реальной базе данных. Существует очень простой способ решения вашей проблемы. Внесите изменения в тест транзакции и отката в конце теста. Вы можете использовать базовый класс следующим образом (NUnit):

[TestFixture]
public abstract class BaseTransactionalTest
{
    private TransactionalScope _scope = null;

    [SetUp]
    public void Initialize()
    {
        _scope = new TransactionalScope(...);        
    }

    [TearDown]
    public void CleanUp()
    {
        if (_scope != null)
        {
            _scope.Dispose();
            _scope = null;
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...