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 более четкое и менее подробное.