Как выложить мои интеграционные тесты - PullRequest
2 голосов
/ 13 октября 2010

У меня довольно большой набор интеграционных тестов, разработанных на C # / NUnit. В настоящее время это один испытательный стенд, один класс. В [TestFixtureSetUp] я создаю базу данных из скрипта и заполняю ее тестовыми данными, также из скрипта. Мои тесты не изменяют данные, поэтому они могут выполняться в любом порядке или параллельно.

Моя проблема в том, что у меня слишком много тестов, и файл становится слишком большим, поэтому он выглядит ужасно, и мой ReSharper становится вялым. Я хочу разделить файл, но я действительно хочу создать свою тестовую базу данных только один раз. В качестве временной меры я перемещаю код, который фактически выполняет тестирование, в статические методы в других классах и вызываю их из одного класса TextFixture следующим образом:

[Test]
public void YetAnotherIntegrationTest()
{
    IntegrationTestsPart5.YetAnotherIntegrationTest(connection);
}

И все же это выглядит ужасно, и я думаю, что должен быть лучший способ.

Я использую VS 2008, обновляюсь до 2010 и SQL Server 2005.

Ответы [ 3 ]

3 голосов
/ 13 октября 2010

Вы можете разбить свой тестовый класс на несколько частичных классов в нескольких файлах.Таким образом, вы можете сохранить один [TestFixtureSetup] и разделить файл на чистоту.

2 голосов
/ 13 октября 2010

Вы можете обернуть соединение с базой данных в класс sigleton, который инициализирует базу данных при создании экземпляра singleton. Тогда вы можете иметь столько тестовых классов, сколько захотите, просто захватите соединение БД из синглтона.

1 голос
/ 22 мая 2011

Я создаю базовый класс, содержащий метод установки.Тогда вы просто наследуете его и вам не нужно ничего вызывать для настройки базы данных в любом из тестовых классов.

...