Выполните модульные тесты последовательно (а не параллельно)

В C мне нравится делать это:


int i = myArray.Length;
while (i--) {
  myArray[i] = 42;
}

пример C#, добавленный MusiGenesis:

{int i = myArray.Length; while (i-- > 0)
{
    myArray[i] = 42;
}}
74
задан Tim Sylvester 15 October 2009 в 23:00
поделиться

2 ответа

Я не знаю подробностей, но похоже, что вы пытаетесь выполнить интеграционное тестирование , а не модульное тестирование . Если бы вы могли изолировать зависимость от ServiceHost , это, вероятно, упростило бы (и ускорило) ваше тестирование. Так (например) вы можете протестировать следующее независимо:

  • Класс чтения конфигурации
  • ServiceHost factory (возможно, в качестве интеграционного теста)
  • Engine class, который принимает IServiceHostFactory и IConfiguration

Инструменты, которые помогут включить изоляционные (имитирующие) фреймворки и (необязательно) фреймворки контейнеров IoC. См .:

5
ответ дан 24 November 2019 в 11:47
поделиться

Возможно, вы сможете использовать Расширенное модульное тестирование . Он позволяет вам определять последовательность, в которой вы запускаете тест . Поэтому вам, возможно, придется создать новый файл cs для размещения этих тестов.

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

[Test]
[Sequence(16)]
[Requires("POConstructor")]
[Requires("WorkOrderConstructor")]
public void ClosePO()
{
  po.Close();

  // one charge slip should be added to both work orders

  Assertion.Assert(wo1.ChargeSlipCount==1,
    "First work order: ChargeSlipCount not 1.");
  Assertion.Assert(wo2.ChargeSlipCount==1,
    "Second work order: ChargeSlipCount not 1.");
  ...
}

Сообщите мне, работает ли это.

3
ответ дан 24 November 2019 в 11:47
поделиться
Другие вопросы по тегам:

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