В C мне нравится делать это:
int i = myArray.Length;
while (i--) {
myArray[i] = 42;
}
пример C#, добавленный MusiGenesis:
{int i = myArray.Length; while (i-- > 0)
{
myArray[i] = 42;
}}
Я не знаю подробностей, но похоже, что вы пытаетесь выполнить интеграционное тестирование , а не модульное тестирование . Если бы вы могли изолировать зависимость от ServiceHost
, это, вероятно, упростило бы (и ускорило) ваше тестирование. Так (например) вы можете протестировать следующее независимо:
IServiceHostFactory
и IConfiguration
Инструменты, которые помогут включить изоляционные (имитирующие) фреймворки и (необязательно) фреймворки контейнеров IoC. См .:
Возможно, вы сможете использовать Расширенное модульное тестирование . Он позволяет вам определять последовательность, в которой вы запускаете тест . Поэтому вам, возможно, придется создать новый файл 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.");
...
}
Сообщите мне, работает ли это.