||
我正在学习 SpecFlow 并致力于一个简单的 Com-Sci 标准 FizzBuzz 项目。
给定一系列数字
用 Fizz 替换整数 3
将 Buzz 替换为整数 5
将整数 3 和 5 替换为 FizzBuzz。
这是一个非常简单的应用程序,但它确实给我带来了问题。如何编写功能来测试多个需求,所有需求均由 API 上的一个方法调用触发?
例如。 API调用如下
FizzBuzz.Replace(1, 100);
使用替换方法代码
公共静态字符串替换(int min,int max)
{
if (IsDiv3 && IsDiv5) {...}
如果 (IsDiv3) {...}
如果 (IsDiv5) {...}
...
}
我在SpecFlow中的功能如下:
功能:FizzBuzz
为了在数字范围内显示 Fizz Buzz
作为用户,我希望能够看到 Fizz Buzz 替换某些数字
场景:用 Fizz、Buzz 或 FizzBuzz 替换 3 和 5 的倍数
鉴于我有从 1 到 15 的数字范围
当我按提交时
那么结果应该是
|数字|
| 1 |
| 2 |
|菲兹 |
| 4 |
|嗡嗡声|
|菲兹 |
| 7 |
| 8 |
|菲兹 |
|嗡嗡声|| 11 | 11
|菲兹 |
| 13 |
| 14 | 14
|菲兹巴兹|
另一个问题是,如果我真的需要将所有需求集中到一个函数中,我怎样才能使该函数更有意义。
编辑
我正在努力创建多个场景,因为一旦我创建第二个场景,第一个场景就会失败。
场景1:将可被3整除的替换为Fizz
预期 = 1 2 嘶嘶声 4 5 嘶嘶声 7 8 嘶嘶声 10 11 嘶嘶声 13 14 嘶嘶声
实际 = 1 2 Fizz 4 5 Fizz 7 8 Fizz 10 11 Fizz 13 14 Fizz(第一次测试)
实际 = 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 Fizz(第二次测试)
然后进行下一个场景
场景2:用Buzz代替可被5整除
预期 = 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 Fizz
实际 = 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 Fizz(第二次测试)
第二个计划通过了,但第一个计划现在已经失败了。我不认为开放 API 来执行场景 1、2、3 对于这个应用程序来说是一个好的设计。
谢谢,