c# - 使用OR条件断言

Moo*_*oon 6 c# unit-testing assertions

我正在检查三个字符的字符串

Assert.AreEqual(myString.Substring(3,3), "DEF", "Failed as DEF  was not observed");
Run Code Online (Sandbox Code Playgroud)

事情就在这里它可以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);
Run Code Online (Sandbox Code Playgroud)

有没有办法可以在Assert中使用一些OR事物

ps我正在编写单元测试,是的,我将使用三元运算符代替....

Chr*_*ott 8

使用 NUnit,AnyOf 约束有效:

Assert.That(myString.Substring(3,3), Is.AnyOf("DEF", "RED"));
Run Code Online (Sandbox Code Playgroud)


Cri*_*ris 6

Assert.IsTrue((myString.Substring(3,3) == "DEF" || myString.Substring(3,3) == "RED")?true:false,"Failed");
Run Code Online (Sandbox Code Playgroud)

  • 这里不需要条件运算符:`Assert.IsTrue(myString.Substring(3,3)=="DEF"|| myString.Substring(3,3)=="RED","失败"); (4认同)