首页 - 新闻 - 如何在 SpecFlow 中创建函数以满足多种需求

如何在 SpecFlow 中创建函数以满足多种需求

2023-10-02 09:25
|| 我正在学习 SpecFlow 并致力于一个简单的 Com-Sci 标准 FizzBu​​zz 项目。 给定一系列数字 用 Fizz 替换整数 3 将 Buzz 替换为整数 5 将整数 3 和 5 替换为 FizzBu​​zz。 这是一个非常简单的应用程序,但它确实给我带来了问题。如何编写功能来测试多个需求,所有需求均由 API 上的一个方法调用触发? 例如。 API调用如下
FizzBu​​zz.Replace(1, 100);
使用替换方法代码
公共静态字符串替换(int min,int max)
{
       if (IsDiv3 && IsDiv5) {...}
       如果 (IsDiv3) {...}
       如果 (IsDiv5) {...}
       ...
}
我在SpecFlow中的功能如下:
功能:FizzBu​​zz
    为了在数字范围内显示 Fizz Buzz
    作为用户,我希望能够看到 Fizz Buzz 替换某些数字

场景:用 Fizz、Buzz 或 FizzBu​​zz 替换 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 对于这个应用程序来说是一个好的设计。 谢谢, ​​