Я только начинаю практиковать 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? И я вообще в том форуме О_О?