Когда и сколько мне следует тестировать интеграцию стороннего кода, когда Практика разработки, основанной на поведении (BDD)?

Контекст: Я пытаюсь практиковать BDD в среде Ruby on Rails, используя Capybara / Steak для интеграционных тестов, поэтому я буду использовать этот пример,но этот вопрос является общим вопросом о передовых методах работы с BDD.

Допустим, у меня есть (по общему признанию, обширная) история пользователя, например:

Feature:

As an administrator

I should be able to manage my products

Я просматривал гем ActiveAdmin для Rails 3, который позволяет создавать сложные интерфейсы администратора, используя простой DSL. Хотя потенциал экономии времени огромен, меня также пугает то, что так много функций передается стороннему коду без тестирования вообще.

Однако меня учили, что обычно вам нужно проверять только тот код, который вы напиши сам. Итак, по этой логике, мне просто нужно проверить, что ActiveAdmin интегрирован правильно, поскольку это единственный код, который я пишу. Базовый сценарий для проверки этого может быть следующим:

Scenario:

Given I have 20 products

When I visit the product index page

Then I should see 20 products.

Это функция, предлагаемая ActiveAdmin из коробки. Таким образом, я мог бы выполнить базовую установку и создать страницу администрирования продуктов, используя документацию ActiveAdmin , и сценарий пройдет успешно.

Конечно, затем я также интегрировал огромное количество других сценариев, таких как как:

Given I have 20 products

And my products include Apples, Bananas, and Berries

When I sort my products by name

Then Apples, Bananas and Berries should be on the first page in that order.

Given I have 20 products

And my products include Apples, Bananas, and Berries

When I type 'ap' into the Filter by Name field

Then I should see "Apples"

And I should not see "Bananas"

и т. д. и т. д.

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

TL; DR : Мой основной вопрос: следует ли мне писать сценарии для критически важных функций, таких как сортировка и фильтрация, даже если они уже предоставлены внешней библиотекой, и я протестировал интеграцию своего приложения с этой библиотекой?

6
задан joshuarh 20 September 2015 в 19:38
поделиться