Здравствуйте, _NN_, Вы писали:
_NN>Какие предпочтения сегодня или вообще другой библиотекой для юнит тестов пользуетесь ?
Недавно как раз выбирали между ними. Оказалось что все тимлиды работали с nunit и никто с xunit. А посколько принципиальной разницы между ними нет — остановились на первом.
Здравствуйте, Jack128, Вы писали:
J>Здравствуйте, _NN_, Вы писали:
_NN>>Какие предпочтения сегодня или вообще другой библиотекой для юнит тестов пользуетесь ?
J>А какая разница?
В немного разных фичах и идеологии.
Скажем в NUnit есть fluent assertion, а в xunit нет и нужно использовать дополнительную библиотеку как FluentAssertions.
.NET Core выбрали в итоге xUnit, а не NUnit.
Здравствуйте, _NN_, Вы писали:
_NN>Здравствуйте, Jack128, Вы писали:
J>>Здравствуйте, _NN_, Вы писали:
_NN>>>Какие предпочтения сегодня или вообще другой библиотекой для юнит тестов пользуетесь ?
J>>А какая разница?
_NN>В немного разных фичах и идеологии. _NN>Скажем в NUnit есть fluent assertion, а в xunit нет и нужно использовать дополнительную библиотеку как FluentAssertions.
Вот откровенно говоря fluent assertion в NUnit — это какой то facepalm. Это точно не может быть плюсом NUnit.
_NN>>В немного разных фичах и идеологии. _NN>>Скажем в NUnit есть fluent assertion, а в xunit нет и нужно использовать дополнительную библиотеку как FluentAssertions.
J>Вот откровенно говоря fluent assertion в NUnit — это какой то facepalm. Это точно не может быть плюсом NUnit.
Чем пользоватья тогда ?
Скажем вариант: Assert.That(array, Has.Exactly(3).LessThan(100));
К тому же у него есть небольшое преимущество, где нельзя ошибиться в порядке аргументов.
Многи не знают, что порядок сначала ожидаемое, а потом текущее значение.
Assert.AreEqual(object expected, object actual);
Здравствуйте, _NN_, Вы писали:
_NN>Чем пользоватья тогда ? _NN>Скажем вариант: Assert.That(array, Has.Exactly(3).LessThan(100)); _NN>К тому же у него есть небольшое преимущество, где нельзя ошибиться в порядке аргументов.
_NN>Многи не знают, что порядок сначала ожидаемое, а потом текущее значение. _NN>Assert.AreEqual(object expected, object actual);
Это запоминается один раз, а касяки типа такого:
Assert.That(1, Is.EqualTo(10).IgnoreCase);
на каждом ассерте возможны. Типизация на нуле. В тех же FluentAssertions такой проблемы нет.
There are no [Setup] and [Teardown] attributes, this is done using the test class’ constructor and an IDisposable. This encourages developers to write cleaner tests.
Будеш смеятся но я видел архитектАров, которые этот Disposable везде нареализовали по framework design guidelines
Здравствуйте, Jack128, Вы писали:
J>Здравствуйте, _NN_, Вы писали:
_NN>>Чем пользоватья тогда ? _NN>>Скажем вариант: Assert.That(array, Has.Exactly(3).LessThan(100)); _NN>>К тому же у него есть небольшое преимущество, где нельзя ошибиться в порядке аргументов.
_NN>>Многи не знают, что порядок сначала ожидаемое, а потом текущее значение. _NN>>Assert.AreEqual(object expected, object actual);
J>Это запоминается один раз, а касяки типа такого: J>
J>Assert.That(1, Is.EqualTo(10).IgnoreCase);
J>
J>на каждом ассерте возможны. Типизация на нуле. В тех же FluentAssertions такой проблемы нет.
А это уже вторая часть вопроса
Насколько нужен FluentAssertions .
У него конечно плюс абстракция от фреймворка тестирования.
Здравствуйте, QrystaL, Вы писали:
QL>Здравствуйте, Ночной Смотрящий, Вы писали: НС>>Если коротко, то да. Настолько, что даже МС его не использует.
QL>Здесь они пишут, что QL>
VC>There are no [Setup] and [Teardown] attributes, this is done using the test class’ constructor and an IDisposable. This encourages developers to write cleaner tests.
Здравствуйте, _NN_, Вы писали:
V>>Интересно, чем "xUnit and NUnit way of writing tests" отличается от MS Test?
_NN>Например параметризованные тесты добавили относительно недавно: https://blogs.msmvps.com/bsonnino/2017/03/18/parametrized-tests-with-ms-test/
Это отличия в отдельных фичах, понятно, что они есть.
Но чем "xUnit and NUnit way of writing tests" отличается от MS Test?