Важно ли иметь автоматические приемочные тесты, чтобы проверить, сохраняет ли поле в базе данных?
Я использую SpecFlow для автоматизированной среды Acceptance Testing и NHibernate для устойчивости. Многие страницы пользовательского интерфейса для приложения интрасети, над которым я работаю, являются базовыми страницами ввода данных. Очевидно, что добавление поля на одну из этих страниц считается "функцией", но я не могу думать ни о каких сценариях для этой функции, кроме
Given that I enter data X for field Y on Record 1
And I click Save
When I edit Record 1
Then I should data X for field Y
Насколько распространено и необходимо автоматизировать подобные тесты? Кроме того, я использую NHibernate, поэтому я не управляю собственным слоем сохранения данных. Как только я добавлю свойство в свой файл сопоставления, есть большая вероятность, что оно не будет удалено по ошибке. Учитывая это, не достаточно ли однократного ручного теста? Я с нетерпением жду ваших предложений и опыта в этом вопросе.
1 ответ
У меня обычно есть сценарии типа "успешное создание...", в которых проверяется успешный случай (вы заполняете все обязательные поля, все входные данные действительны, вы подтверждаете и, наконец, они действительно сохраняются). Я не думаю, что вы можете легко определить отдельный сценарий для одного поля, потому что обычно сценарий успешного создания требует, чтобы несколько других критериев были выполнены "одновременно" (например, все обязательные поля должны быть заполнены).
Например:
Scenario: Successful creation of a customer
Given I am on the customer creation page
When I enter the following customer details
| Name | Address |
| Cust | My addr |
And I save the customer details
Then I have a new customer saved with the following details
| Name | Address |
| Cust | My addr |
Позже я могу добавить дополнительные поля к этому сценарию (например, адрес для выставления счета):
Scenario: Successful creation of a customer
Given I am on the customer creation page
When I enter the following customer details
| Name | Address | Billing address |
| Cust | My addr | Bill me here |
And I save the customer details
Then I have a new customer saved with the following details
| Name | Address | Billing address |
| Cust | My addr | Bill me here |
Конечно, может быть больше сценариев, связанных с новым полем (например, проверки и т. Д.), Которые вы должны определить или расширить.
Я думаю, что если вы воспользуетесь этим подходом, вы сможете избежать множества "тривиальных" сценариев. И я могу утверждать, что это успешный случай "создания клиента", который заслуживает как минимум одного теста.