Assert.AreEqual vs Assert.IsTrue/Assert.IsFalse
При тестировании метода возвращаемого типа bool.
Если у вас есть:
expected = true;
Assert.AreEqual(expected, actual);
или
Assert.IsTrue(actual);
Я знаю, что они оба дают один и тот же результат, но какую практику лучше использовать?
ОБНОВЛЕНИЕ: Например, если я делаю AreEqual, это не то же самое, что делать IsTrue для метода, который возвращает строку а-ля ниже:
string expected = 'true';
string actual = test.testMethod(data)
bool test;
if expected.equals(actual)
test = true;
else
test = false;
Assert.IsTrue(test);
Ответы
Ответ 1
Вы должны использовать только Assert.IsTrue
, если вы тестируете что-то, что напрямую возвращает логическое значение, которое всегда должно быть истинным.
Вы не должны массировать данные, чтобы получить boolean для IsTrue
; вместо этого вы должны вызвать более релевантный метод в Assert
или CollectionAssert
.
В вашем отредактированном примере вы обязательно должны называть Assert.AreEqual
; это даст вам гораздо более приятное сообщение.
Ответ 2
Использование Assert.IsTrue
более четкое и менее подробное.