Как вы справляетесь с TDD в непрерывной интеграции?

Представьте, что вы реализуете пользовательскую историю, содержащую различные новые функции и усложняющую кодовую базу. Существующий код довольно хорошо покрыт, и вы только что определились с интерфейсами. Вы начинаете реализовывать функционал, начиная с тестов.

Теперь у вас есть довольно сложные тестовые примеры, основанные на требованиях, но реализация еще далека от того момента, когда вы сможете зафиксировать полностью рабочий код SCM, а многие тесты терпят неудачу (как и должны).

Предполагается, что при непрерывной интеграции все сборки должны быть зелеными, если это возможно, и поэтому вы не должны коммитить, так как вы нарушите сборку. Но и не стоит "Погаснуть" и такое количество кода оставлять себе ...

Какая процедура предлагается в такой ситуации?

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
0
757
2

Ответы 2

Не выбирайте заранее интерфейсы все. Постепенно развивайтесь в типичном ритме TDD: напишите тест; пройти тест; рефакторинг. Это должно поддерживать все в хорошей форме, полоса всегда будет зеленой, и вы можете проверять код, не беспокоясь о том, что вы нарушите сборку.

Это требует другого стиля написания кода, но со временем вы привыкнете к ритму.

Я считаю, что начинать взламывать без какого-либо концептуального анализа - это плохо. Это приводит к неудовлетворительному и иногда не очень логичному коду. Представьте, что вы находитесь не в идеальной ситуации, когда все члены команды имеют одинаковую квалификацию, но есть и значительное количество юниоров.

Petr Macek 30.09.2008 15:34

Петр, я не имел в виду, что люди должны заниматься взломом без какого-либо концептуального анализа. Анализ и цель кода все еще там. Только с формой пока не определись ;-). Мой опыт работы с юниорами показывает, что они создают лучший код, когда вы говорите им писать тесты.

Hristo Deshev 05.10.2008 11:49

Как насчет того, чтобы пропустить те тесты, которые, как вы знаете, не пройдут, потому что функциональность в настоящее время отсутствует?

Дайте понять, что вы тоже пропускаете тесты! Действительно заставить его кричать «как застрявшая свинья», как говорят в Оз! (-:

По мере добавления функциональности включайте связанные тесты и сохраняйте «зеленую полосу»!

Вот еще одна отличная статья из The Pragmatic Programmers, который рассказывает о том, как сделать разбитые окна очевидными для других.

HTH

ваше здоровье,

Роб

Другие вопросы по теме