使用OR条件断言
本文关键字:断言 条件 OR 使用 | 更新日期: 2023-09-27 18:20:10
我正在检查一个字符串中是否有三个字符的
Assert.AreEqual(myString.Substring(3,3), "DEF", "Failed as DEF was not observed");
问题是,它可以是DEF
或RES
,现在要处理这个问题,我可以想到以下
bool check = false;
if( myString.Substring(3,3) == "DEF" || myString.Substring(3,3) == "RED" )
check = true;
Assert.IsTrue(check,"Failed");
Console.WriteLine(""Passed);
有没有一种方法可以在Assert中使用一些东西
我正在写单元测试&是的,我将使用三元运算符。。。。
Assert.IsTrue((myString.Substring(3,3) == "DEF" || myString.Substring(3,3) == "RED")?true:false,"Failed");
使用NUnit,AnyOf约束有效:
Assert.That(myString.Substring(3,3), Is.AnyOf("DEF", "RED"));
根据您正在使用的单元测试框架,您可以执行以下操作:
Assert.Contains(myString.Substring(3, 3), new [] { "DEF", "RED" });
但请注意,这有点滥用系统,因为它切换了预期的和实际的。
另一种方法应该适用于任何框架,并且不会滥用系统,它看起来是这样的:
Assert.True(new [] { "DEF", "RED" }.Contains(myString.Substring(3, 3)));
NUnit还可以选择通过OR:进行测试
Assert.That(myString.Substring(3, 3), Is.EqualTo("DEF").Or.EqualTo("RED"));
使用xUnit
var result = new[] { "DEF", "RED" };
Assert.Contains(myString.Substring(3,3), result);