Я и коллега запускают новый проект и пытаются в полной мере использовать TDD. Мы все еще выясняем все концепции вокруг модульного тестирования и, тем самым, основывая их главным образом на других примерах.Понимание ограничений тестового блока и помощников синтаксиса NUnit
Мой коллега недавно поставил под вопрос точку помощников синтаксиса NUnit, и я изо всех сил стараюсь объяснить их преимущества (так как я не совсем понимаю это сам, кроме моей кишки, говорит, что они хороши!). Вот пример утверждение:
Assert.That(product.IsValid(), Is.False);
Для меня это имеет полный смысл, мы говорим, что мы ожидаем, что стоимость product.IsValid()
быть false
. Мой коллега с другой стороны предпочли бы нам просто написать:
Assert.That(!product.IsValid());
Он говорит, что ему это имеет смысл, и он может читать его проще.
До сих пор единственное, с чем мы можем договориться, это то, что вы, скорее всего, получите более полезный результат, когда тест не сработает с первого, но я думаю, что должно быть лучшее объяснение. Я искал некоторую информацию о помощниках синтаксиса (http://nunit.com/blogs/?p=44), и они имеют смысл, но я не совсем понимаю концепцию ограничений, отличных от того, что они «чувствуют».
Интересно, может ли кто-нибудь объяснить, почему мы используем концепцию ограничений и почему они улучшают приведенные выше примеры тестов модулей?
Спасибо.
Пример действительно сложного использования ограничений здесь http://geekswithblogs.net/mrsteve/archive/2012/02/13/writing-readable-unit-tests-clean-code-handbook-agile-software-craftsmanship.aspx – 2013-07-31 16:52:30