Mar*_*Pim 7 unit-testing assert mspec
之前使用过MbUnit,我们正在使用MSpec进行单元测试.
我习惯说
Assert.IsTrue(status, "Status should be true");
Run Code Online (Sandbox Code Playgroud)
在MbUnit中,即向断言添加消息,如果失败则输出该消息.
我在MSpec中找不到任何相应的功能.我正在测试一些XML验证,如果失败,我想报告验证错误消息.所以我的MSpec代码看起来像
string message;
bool isValid = ValidateXml(myXml, out message);
isValid.ShouldBeTrue();
Run Code Online (Sandbox Code Playgroud)
但是message如果ShouldBeTrue()失败,我希望能够将测试输出添加到测试输出中.
这可能吗?
看看MSpec的来源,没有.扩展方法不为消息采用字符串参数.
您可以根据要编写的代码自行添加功能; 代码在machine.specifications / Source / Machine.Specifications / ExtensionMethods.cs.我不知道建设有多难.
例如,您可以创建ShouldBeFalse以及ShouldBeTrue类似的重载:
[AssertionMethod]
public static void ShouldBeFalse([AssertionCondition(AssertionConditionType.IS_FALSE)] this bool condition, string message)
{
if (condition)
throw new SpecificationException(message);
}
[AssertionMethod]
public static void ShouldBeTrue([AssertionCondition(AssertionConditionType.IS_TRUE)] this bool condition, string message)
{
if (!condition)
throw new SpecificationException(message);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
569 次 |
| 最近记录: |