Важно ли иметь автоматические приемочные тесты, чтобы проверить, сохраняет ли поле в базе данных? - PullRequest
2 голосов
/ 08 июня 2011

Я использую 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 Ответ

2 голосов
/ 15 июня 2011

У меня обычно есть сценарии типа «успешное создание ...», которые проверяют успешный вариант (вы заполняете все обязательные поля, все входные данные действительны, вы подтверждаете, и, наконец, они действительно сохраняются). Я не думаю, что вы можете легко определить отдельный сценарий для одного поля, потому что обычно сценарий успешного создания требует, чтобы несколько других критериев были выполнены «одновременно» (например, все обязательные поля должны быть заполнены).

Например:

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    |

Конечно, может быть больше сценариев, связанных с новым полем (например, проверки и т. Д.), Которые вы должны определить или расширить.

Я думаю, что если вы воспользуетесь этим подходом, вы сможете избежать множества "тривиальных" сценариев. И я могу утверждать, что это успешный пример «функции создания клиента», которая заслуживает как минимум одного теста.

...