我正在使用Microsoft WebTest,并希望能够执行类似于NUnit的操作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 IEnumeratorGetRequestEnumerator() { this.Fail(); yield return new WebTestRequest("http://google.com"); }
Outcome
正在设置,Oucome.Fail
但显然WebTest框架并没有真正使用它来确定测试通过/失败结果.