Я изучаю SpecFlow и делаю простой стандартный проект FizzBuzz Com-Sci.Учитывая диапазон чисел Замените делимое на 3 с помощью Fizz Замените делимое на 5 с помощью Buzz Замените делимое на 3 и пять на FizzBuzz.
Это очень простое приложение, но оно вызвало у меня вопрос.Как написать функции для тестирования нескольких требований, когда все они запускаются из одного вызова метода в API?Например, вызов API будет выглядеть следующим образом: FizzBuzz.Replace(1, 100);
с кодом метода Replace
public static string Replace (int min, int max)
{
if (IsDiv3 && IsDiv5) {...}
if (IsDiv3) {...}
if (IsDiv5) {...}
...
}
Мои функции в SpecFlow следующие:
Feature: FizzBuzz
In order to display Fizz Buzz in range of numbers
As a user I want to be able to see Fizz Buzz replace certain numbers
Scenario: Replace muliples of three and five with Fizz, Buzz or FizzBuzz
Given I have a range of numbers from 1 to 15
When I press Submit
Then the result should be
| Numbers |
| 1 |
| 2 |
| Fizz |
| 4 |
| Buzz |
| Fizz |
| 7 |
| 8 |
| Fizz |
| Buzz |
| 11 |
| Fizz |
| 13 |
| 14 |
| FizzBuzz|
Еще один вопрос - как сделатьболее значимым, если мне нужно объединить все требования в одной функции.
Редактировать Я изо всех сил пытаюсь создать несколько сценариев, потому что, как только я создаю второй сценарий, первый отказывает.
scenario 1: replace divisable by 3 with Fizz
Expected = 1 2 Fizz 4 5 Fizz 7 8 Fizz 10 11 Fizz 13 14 Fizz
Actual = 1 2 Fizz 4 5 Fizz 7 8 Fizz 10 11 Fizz 13 14 Fizz (First test)
Actual = 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 Fizz (Second test)
, затем выполните следующий сценарий
Scenario 2: replace divisable by 5 with Buzz
Expected = 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 Fizz
Actual = 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 Fizz (Second test)
Второй сценарий пройден, но первый сценарий завершился неудачей.Я не думаю, что открытие API для сценария 1, 2, 3 было бы хорошим дизайном для приложения.
Спасибо,