我正在开发一个项目,我必须在C#中使用NUnit中的软断言。 我需要实现一个功能,该功能表明如果测试失败,请转到下一个测试而不显示异常,但请注意此测试失败。 我知道使用多个断言是不可取的,但这是必要的,因为我得到了一个表格,其中带有姓氏的字段可能会失败,但接下来的测试是独立的,应该仍然运行。
public class SoftAssertionTest
{
public static void AreEqual(object expected, object actual)
{
try
{
Assert.AreEqual(expected, actual);
}
catch (Exception e)
{
//Catch exception but remember that test failed and got to the
//next
}
}
}
预期结果是所有测试都在没有异常的情况下运行,但最终结果显示失败状态。
[TestFixture]
public class TestClass
{
[Test]
public static void Test()
{
SoftAssertionTest.AreEqual(1, 2);
SoftAssertionTest.AreEqual(3, 4);
}
}
有什么想法吗?
答案 0 :(得分:0)
NUnit 3有Assert.Warn
如果您只想警告失败,Assert.Multiple
如果您想要运行多个断言并且如果任何单个断言失败,则测试失败,但要确保所有断言断言运行。
答案 1 :(得分:0)
SoftAssert softAssert = new SoftAssert();
softAssert.True(false);
softAssert.False(true);
softAssert.NotNull(null);
softAssert.VerifyAll();