Я использую Microsoft WebTest и хочу иметь возможность делать что-то похожее на Assert.Fail()
NUnit. Лучшее, что я придумал, это throw new webTestException()
, но это показывает в результатах теста как Error
, а не Failure
.Как я могу выйти из веб-теста?
За исключением отражения на WebTest
для установки переменной частного члена, указывающей на сбой, есть ли что-то, что я пропустил?
EDIT: Я также использовал метод Assert.Fail()
, но это все еще отображается как ошибка, а не сбой при использовании из WebTest, а свойство Outcome
доступно только для чтения (не имеет общедоступного средства настройки).
EDIT: ну, теперь я действительно в тупике. Я использовал отражение, чтобы установить свойство Outcome
в Failed, но тест еще проходит!
Вот код, который устанавливает Oucome к неуспешно:
public static class WebTestExtensions
{
public static void Fail(this WebTest test)
{
var method = test.GetType().GetMethod("set_Outcome", BindingFlags.NonPublic | BindingFlags.Instance);
method.Invoke(test, new object[] {Outcome.Fail});
}
}
и вот код, который я пытаюсь терпеть неудачу:
public override IEnumerator<WebTestRequest> GetRequestEnumerator()
{
this.Fail();
yield return new WebTestRequest("http://google.com");
}
Outcome
становится установлен Oucome.Fail
но, видимо, WebTest framework не использует это для определения результатов теста/неудачи.
Если бы понятнее ... У меня было уже пробовали оба из них. (отредактированный вопрос, чтобы это отразить) – craigb 2008-10-22 14:08:22