Comments 25
Надеюсь этот скриншот не из реального проекта?
Либо использовать
@Unroll
читаемый отчет о тестировании
А его кто-то реально читает?
Если тест написан исходя из цели: управление качеством с минимальными затратами, то тесты будут регулярно падать, и понятное сообщение об ошибке (понятное широкому кругу лиц) упрощает восстановление.
Вообще тесты — весьма специфичный артефакт. Продуктивный код и код тестов — подходы могут отличаться очень серьезно, т.к. у них цели разные.
Либо использовать Junit5 аннотацию @DisplayName
Хорошие кандидаты на название компонента могут содержать название паттерна: Validator, Strategy, Builder, Transformer, Controller и тп. Или название события: Submitter, Login, ReadonlyOrderView и тп. Т.е. в зависимости от названия компонента должны быть определены и входные и выходные значения главной функции класса. Плохие названия: слишком абстрактные (Service,Component,Helper,Utility) и двойные (ValidatorAndRenderer).
А Validator, Builder и тд не абстрактные значит? Как понять какие абстрактные, а какие нет?
OrderValidator имеет метод validate и возвращает либо boolean, либо validationresult с ошибками. OrderBuilder имеет метод Build и возвращает Order. OrderService — непонятно что делает. Вот что я имею ввиду
OrderService имеет метод order и возвращает boolean. ButtonComponent имеет метод render и возвращает DOM. MultiplyHelper имеет метод multiply и возвращает number.
OrderService имеет метод order — то ниоткуда не следует. Я бы предположил, что он имеет методы CRUD для entity Order, но нет необходимости гадать.
ButtonComponent норм, но component не особо добавляет смысла, разве что в контексте фреймворка какого-то. MultiplyHelper is effectively Multiplier.
А откуда следует, что OrderValidator имеет метод validate, а не семейство методов visit_* для анализа AST?
ButtonComponent, ButtonState, ButtonTemplate, ButtonInterface… LogComponent, PageComponent, BookComponent...
MultiplyHelper, MultiplyToken, MultiplyNode, MultiplyHotkey, MultiplyIcon...
Это, вероятно, следует из контекста. Вряд ли в одном проекте сидит и AST парсер, и CRUD операции для сущности.
В остальном вы перечислили POJOs, которые возвращаются из методов, а не тестируемые классы. Какой метод у Icon?
спецификации должны соотноситься с юзер стори в терминах
И далее вы говорите исключительно про системные тесты. Вы бы хоть обозначили это явно, а то кто-то может начать и модульные тесты так писать.
Т.е. по вашему модульные тесты не надо называть внятно?
По моему модульные тесты лучше вообще не писать. В любом случае пользовательские истории к ним отношения не имеют никакого.
Я говорю про любые тесты
TDD: как правильно писать спецификации (describes)