Я использую Microsoft WebTest и хочу сделать что-то похожее на NUnit's Assert.Fail()
. Лучшее, что я придумал, это throw new webTestException()
, но это показывает в результатах теста как Error
, а не Failure
.
Кроме размышлений о WebTest
для установки закрытой переменной-члена для указания сбоя, я что-то пропустил?
РЕДАКТИРОВАТЬ: Я также использовал метод Assert.Fail()
, но он по-прежнему отображается как ошибка, а не как сбой при использовании из WebTest, а свойство Outcome
только для чтения (не имеет общедоступного установщика).
РЕДАКТИРОВАТЬ: ну, теперь я действительно в тупик. Я использовал отражение, чтобы установить для свойства 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 на самом деле не использует это для определения результатов теста / неудачи.