Тестирование на основе данных с помощью NUnit

Нужен совет по автоматизации тестирования данных на основе.

Я делаю автоматизацию тестирования с использованием C# ann Nunits для веб-приложения, разработанного с использованием MVC. Для этого мы используем веб-драйверы Selenium.

В рамках тестирования, управляемого данными, полезно использовать его для входных тестовых данных, это xml файлы или база данных sql server.

Если мы используем db, хорошо ли иметь какой-нибудь ORM(NHibernate) для подключения к db.

Спасибо

4 ответа

управляемых данными испытаний в-NUnit-с-CSV

Параметризованные тесты в NUnit

Как пользоваться

   [Test, TestCaseSource("GetTestData")]
    public void MyExample_Test(int data1, int data2, int expectedOutput)
    {
        var methodOutput = MethodUnderTest(data2, data1);
        Assert.AreEqual(expectedOutput, methodOutput, string.Format("Method failed for data1: {0}, data2: {1}", data1, data2));
    }


    private IEnumerable<int[]> GetTestData()
    {
         while (data.ReadNext()) // Use your custom logic based on Stream to get new data (basically Implement IEnumerator on data class)
          yield return new[] { data.Current };
    }

Другие рамки тестирования
MS Test
XUnit

Посмотрите, что подходит для вашего счета.

Если у вас есть хороший ORM, и вам это удобно, используйте его.

Если вам удобнее с XML - делайте это.

Подумайте о длительном времени работы, когда это становится проблемой. Вы не пишете модульные тесты с Selenium, вы пишете интеграционные тесты пользовательского интерфейса. Поэтому они, как правило, бегают ночью, поэтому длительное время работы редко становится проблемой.

Лично здесь мы используем LINQ2SQL и для любых данных, которые я перенаправляю в базу данных SQL-сервера, и она работает нормально - при условии, что ваши запросы не глупы, прирост производительности незначителен.

Мое предложение состояло бы в том, чтобы объединить данные испытаний в сам прибор модульного тестирования. Настройка каждого метода тестирования будет устанавливать начальное состояние (данные) для теста; и демонтаж очистит его (при необходимости).

Попытка сохранить внешний файл данных и привести его в соответствие с кодом модульного теста вызывает проблемы. (YMMV - это мой совет из личного опыта.)

Рассмотрите возможность хранения тестовых данных во встроенных файлах json вместо excel или базы данных.

Хранение в JSON будет иметь следующие преимущества.

  1. Нет препятствий в тестовом коде из-за схемы
  2. Нет проблем с подключением
  3. Тестовые данные будут доступны как часть вашего проекта

Это обеспечивает хорошую поддержку для управления вашими тестовыми данными во встроенных файлах json.

Другие вопросы по тегам