NUnit начинался как порт JUnit и существует уже давно. MBUnit появился после свершившегося факта и принес «генеративное» модульное тестирование. Это означает, что он может пройти один модульный тест и создать несколько из него. Одним из способов сделать это является атрибут [RowTest].
Если типовой модульный тест не принимает параметров, RowTest принимает параметры и генерирует из них несколько тестов. Я считаю, что в NUnit теперь есть концепция RowTest.
[Test]
[Row(1,1,2)]
[Row(2,2,4)]
[Row(1,2,3)]
public void X_plus_Y_equals_Z(x,y,z)
{
Assert.AreEqual(z, x+y);
}
Это приведет к запуску 3 тестов в тестовом средстве. Есть также функции для отката транзакций базы данных.
NUnit имеет свободный интерфейс для утверждений, что приятно, но на самом деле не является преимуществом. NUnit, вероятно, также имеет некоторую лучшую поддержку инструментов (тестовый инструмент Resharper работает с NUnit из коробки, но требует плагинов для MBUnit).
В конце концов, вы должны выбрать один фреймворк и пойти с ним. Навыки, которые вы приобретаете, очень легко переносятся из одной среды в другую.