Как я определяю параметры метода тестирования с TestDriven.NET?

Это, кажется, дискуссия... Heh. Вот другой varation, который я предполагаю, находится больше в категории, "умной", чем что-то, что я рекомендовал бы для производственного кода:

flipVal ^= (wParam == VK_F11);
otherVal ^= (wParam == VK_F12);

я предполагаю, что это - преимущества:

  • Очень краткий
  • не требует ветвления

И так же, как очевидный недостаток

  • Очень краткий

, Это близко к использованию решения @korona?: но взятый один (маленький) шаг вперед.

12
задан Thomas Levesque 5 September 2009 в 03:31
поделиться

2 ответа

Модульные тесты обычно не должны принимать никаких параметров. Вы создаете необходимые данные в самом тесте.

  • Ожидаемое значение
  • Вы вызываете свой метод, который хотите протестировать, передавая необходимые аргументы
  • Вы сравниваете результат с ожидаемым значением и возвращенным значением из вашего протестированного метода

Модульные тесты MS не позволяют передавать параметры тестам. Вместо этого вам нужно создать Datadriven Unit-тесты . Попробуйте ссылку, это может вам помочь.

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


Обновление: Я был молод :). Вместо этого рассмотрите ответ Сарфраза о том, как передавать параметры в тесты NUnit.

2
ответ дан 2 December 2019 в 05:54
поделиться

Думаю, вы можете решить эту проблему, используя плагин RowTest для NUnit, который можно найти здесь http://www.andreas-schlapsi.com/2008/01/29/rowtest-extension -120 /

Вы можете создавать простые тесты на основе данных, в которых тестовые данные предоставляются атрибутами [Row]. Итак, вот пример теста, который запускается снова и снова с разными параметрами:

[TestFixture]
public class RowTestSample
{
 [RowTest]
 [Row( 1000, 10, 100.0000)]
 [Row(-1000, 10, -100.0000)]
 [Row( 1000, 7, 142.85715)]
 [Row( 1000, 0.00001, 100000000)]
 [Row(4195835, 3145729, 1.3338196)]
 public void DivisionTest(double numerator, double denominator, double result)
 {
    Assert.AreEqual(result, numerator / denominator, 0.00001);
 }
} 
2
ответ дан 2 December 2019 в 05:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: