我曾经在NUnit中使用它们,它们非常有用.知道怎么做这样的事吗?
编辑,代码示例:
bool condition = false;//would be nice not to have this
observable.Subscribe(_ =>
{
if (real test)
condition= true;//Assert.Pass()
});
StartObservable();
Assert.True(condition);//Assert.Fail()
Run Code Online (Sandbox Code Playgroud)
Jon*_*eet 85
该文档包括一个比较图表,包括:
Fail- xUnit.net替代方案:Assert.True(false, "message")
(它没有显示Assert.Pass,我自己从未使用过,但我怀疑替代方案只是从测试中返回.当然,如果你想在嵌套方法调用中抛出它,那就无济于事了.我的怀疑是因为它在NUnit中并不经常使用,因此它在比较图表中不存在.)
Nik*_*Nik 25
xUnit文档Assert.Fail("messsage")建议的替代方法
xUnit.net替代方案:Assert.True(false,“ message”)
有一个缺点-它的输出是
message
Expected: True
Actual: False
Run Code Online (Sandbox Code Playgroud)
摆脱
Run Code Online (Sandbox Code Playgroud)Expected: True Actual: False
不要叫Assert.True(false, "message")抛出Xunit.Sdk.XunitException。
例如,创建类似于以下内容的帮助方法:
public static class MyAssert
{
public static void Fail(string message)
=> throw new Xunit.Sdk.XunitException(message);
}
Run Code Online (Sandbox Code Playgroud)
只需抛出异常即可满足这两个要求(退出嵌套循环并替换缺少的Assert.Fail方法).唯一的问题是没有合适的基本异常(例如TestException)来使用以避免获得有关使用基本Exception类的警告,因此更像InvalidOperationException的定向可能是一个不错的选择.
| 归档时间: |
|
| 查看次数: |
19712 次 |
| 最近记录: |