我正在检查三个字符的字符串
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
中使用一些OR事物p.s我正在编写单元测试&是的,我将使用三元运算符....
答案 0 :(得分:5)
Assert.IsTrue((myString.Substring(3,3) == "DEF" || myString.Substring(3,3) == "RED")?true:false,"Failed");
答案 1 :(得分:1)
根据您使用的单元测试框架,您可以执行以下操作:
Assert.Contains(myString.Substring(3, 3), new [] { "DEF", "RED" });
但要注意,这会滥用系统,因为它切换了预期和实际。
应该适用于任何框架并且不滥用系统的替代方法如下所示:
Assert.True(new [] { "DEF", "RED" }.Contains(myString.Substring(3, 3)));
答案 2 :(得分:1)
使用 NUnit,AnyOf constraint 可以工作:
Assert.That(myString.Substring(3,3), Is.AnyOf("DEF", "RED"));