c# – 使用OR条件断言

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

Assert.AreEqual(myString.Substring(3,3), "DEF", "Failed as DEF was not observed"); 

事情在这里它可以是DEFRES ,现在处理这个我能想到的是以下

 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事物

ps我正在编写unit testing,是的,我将使用三元运算符代替….

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

根据您使用的unit testing框架,您可以执行以下操作:

 Assert.Contains(myString.Substring(3, 3), new [] { "DEF", "RED" }); 

但要注意,这有点滥用系统,因为它切换了预期实际

应该与任何框架一起使用并且不滥用系统的替代方法如下所示:

 Assert.True(new [] { "DEF", "RED" }.Contains(myString.Substring(3, 3)));