Вход на сайт
TDD, BDD и OOP?
818 просмотров
Перейти к просмотру всей ветки
в ответ Murr 16.11.21 19:18
БДД, по определению, документ из трех частей, описывающий базовые хотелки в виде процедур.
Что ты имеешь в виду?
От этого документа есть беспроблемный переход к ТДД - там тоже процедурная парадигма.
ТДД к процедурной парадигме не имеет никакого отношения.
А вот с перехдом к ООП - затык - там iнтерфейсов нет.
Интерфес - это всего лишь абстракция. В C++ интерфейсов тоже нет (или уже ввели?).
Вот например есть некий класс калькулятора:
public class Calc { public int Add (int a, int b) { return a + b; } }
BDD тест можно описать так:
Story: Add two values As a calculator user I want to add two integers. Scenario 1: Add zero to a value Given I've created an instance of calculator And my first term is 15 When I've added 0 Then I should have 15 Scenario 2: Add two non-zero values Given I've created an instance of calculator And my first term is 5 When I've added 7 Then I should have 12
У такого подхода есть свои плюсы. В первую очередь, тесты могут писать далекие от программирования люди, но зато понимающие предметную область.
Минусы тоже есть - перед тем как получится эффективно внедрять этот метод архитекторам придется изрядно поработать как со специалистами в предметной области, так и с программистами, чтобы выработать единый язык. Но это уже чистое DDD