2013-06-28 2 views
0

я проверить строку для трех символовC# - Утверждая с ИЛИ условие

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

PS я пишу г модульного тестирования & да я буду использовать тройной оператор вместо ....

+1

вы не можете просто положить, если чек внутри утверждают .. – Sayse

ответ

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

Нет необходимости для условный оператор здесь: 'Assert.IsTrue (myString.Substring (3,3) ==" DEF "|| myString.Substring (3,3) ==" RED "," Failed ");' –

+0

спасибо, что указали его out, я ставлю только для справки, если кто-то еще этого не знает – Cris

1

В зависимости от структуры модульного тестирования вы используете вы могли бы сделать что-то вроде этого:

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

Но будьте осторожны, это немного злоупотребляя системой, поскольку он переключился ожидается и фактический.

Альтернативный подход, который должен работать с любой рамки и не злоупотреблять системой будет выглядеть следующим образом:

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

 Смежные вопросы

  • Нет связанных вопросов^_^