2015-05-24 3 views
2

Я разработал самоцвет, который обертывает C api для управления дистанционными выключателями и диммерами. Когда я разработал этот камень для проведения тестирования, я высмеивал базовый C api во время компиляции с некоторой магией привязки, и это отлично работало, я мог развиваться на своем рабочем столе без правильного оборудования и так далее.TDD web api, который управляет оборудованием

Теперь я хочу использовать этот камень в другом проекте, чтобы обернуть над ним REST API более высокого уровня, но я борюсь с тестированием.

Как проверить свой REST API без использования оборудования. Должен ли я в проекте включать мой низкоуровневый api в качестве подмодуля git и гадать вокруг с путями загрузки, чтобы я мог повторно использовать макет низкого уровня?

Или должен ли я снова высмеять весь API для нового проекта? Здесь у меня полная потеря.

Любые советы и дискуссии по этому вопросу приветствуются

ответ

0

Если я правильно понимаю, вы хотите, чтобы обернуть тот же «камень», который облегает C Api с еще одним слоем, который предоставляет REST API. Я прав? Если это так, вы должны либо высмеять драгоценный камень, либо API C, как и с драгоценным камнем.

«Чистые» Практики TDD обычно рекомендуют изолировать самые маленькие кусочки (т. Е. Макет драгоценного камня), чтобы управлять SRP (принцип единой ответственности).

С другой стороны, когда слой, который я добавляю (API REST в этом случае), в основном является оберткой и не имеет собственной «бизнес-логики», то лично я бы предпочел писать мои тесты скорее как тесты интеграции, а не чистые модульные тесты, поэтому я тестирую новый слой в правильном контексте. (Т. Е. Тестировать Rest API + вместе с gem и высмеивать только API C)

Если этот REST API - это просто оболочка, то вы можете, вероятно, повторно использовать свои тесты, нажав их на базовый класс и получив 2 дети: один, чтобы проверить сам камень, и один, чтобы проверить его через API REST. В любом случае, я всегда реорганизую свои тесты и свой код вместе, чтобы удалить дублирование. Иногда это приводит меня к изменению того, что я издеваюсь над тем, что я делаю, и улучшает общий дизайн, как CUT, так и сами тесты.

HTH ...

Смежные вопросы