Я только начинаю практиковать BDD, используя подход GWT к следующему коду, и только что понял, что не могу пройти второй тест.
Мой GWT выглядит примерно так:
Given there exists an open query
When the user replies to the query
Then it should save the reply if the reply is not blank
Тогда он должен уведомить пользователя и не сохранять ответ, если он пуст
Так что я закодировал это так
public class when_user_replies_to_the_query : OpenQuery
{
Because
{
query.Reply(data);
}
ThenIt should_save_the_reply_to_the_database_if_there_is_a_reply
ThenIt should_notify_the_user_if_there_is_no_text_in_the_reply_and_not_save_to_database
}
public class Query
{
void Reply(string data)
{
//do something
}
}
Но потом я понял, что не могу выполнить второй случай, потому что первый случай требует, чтобы в данных было что-то, а во втором случае говорится, что данные должны быть пустой строкой.
Значит ли это, что я должен разделить свой GWT на что-то вроде
Given the reply is blank
When the user replies to the query
Then it should notify the user ......
Если это так, то я бы написал огромное количество сценариев с нулевым регистром для возврата
values being null. Such as
Given the database is null
When retrieving queries
Should reply with error message
When saving queries
Should save to file and reply with error message
When // basically doing anything
Should //give appropriate response
Это то, как я должен писать свои спецификации BDD? И я хоть на нужном форуме О_О?