Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

TDD, BDD и OOP?

16.11.21 20:24
Re: TDD, BDD и OOP?
 
Программист коренной житель
в ответ 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 улыб

 

Перейти на