MbUnit vs Nunit

Я читал, что MbUnit - это Nunit на стероидах, но я не понимаю, почему. Из того, что я прочитал здесь, я здесь, что Nunit более популярен по MbUnit. Одна из основных причин заключается в том, что он имеет свободный интерфейс. Это единственная причина?

Почему я должен предпочесть MbUnit над Nunit или наоборот? Спасибо!

Ответ 1

NUnit начался как порт JUnit и длится довольно долго. MBUnit пришел после факта, и он принес "Generative" модульное тестирование. Это означает, что он имеет возможность принимать один unit test и генерировать несколько из него. Один из способов сделать это - атрибут [RowTest].

Если типичный unit test не будет принимать никаких параметров, 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 требуются плагины).

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

Ответ 2

Несмотря на то, что NUnit теперь включает в себя самые популярные расширенные функции MbUnit, MbUnit по-прежнему обладает большей функциональностью, например:

Свободные интерфейсы могут быть приятными, но в целом они не добавляют никаких новых функций, они просто представляют вещи программисту по-другому.

NUnit более популярен, потому что он был первым (поэтому больше статей об этом в Интернете и лучшей оснастке), и потому, что большинство программистов не заботятся или не нуждаются в дополнительных функциях, которые предлагает MbUnit.

Ответ 3

Просто примечание для тех, кто проводит исследования:

С сайта MbUnit: "Gallio и MbUnit в настоящее время находятся на перерыве".

В аккаунте MbUnit GitHub показывается крайне редкая история фиксации.

Ответ 4

Плагин MbUnit доступен только для Re # 6 (без лишних манипуляций). Поэтому, если вы используете VS 2012 или 2013, вам нужно использовать более новую версию Re #, которая поддерживает NUnit из коробки.

Также похоже, что MbUnit и Gallio больше не поддерживаются.