如何在 MSpec 中实现 SpecFlow "Scenario Outline"

How to implement SpecFlow "Scenario Outline" in MSpec

我的团队已经为我们的 BDD 测试框架选择了 MSpec,从目前的使用情况来看,它看起来非常好 - 但我正在努力 documentation/google 寻找类似于 SpecFlow [=21= 的任何实现].我在下面展示了一个示例,但基本上它允许您从 inputs/expected 输出的 table(示例)中多次编写一个 'test' 和 运行。如果答案是 LMGTFY,我会感到尴尬,但我自己找不到任何东西。我不想对团队说,如果我只是没有找到如何在 MSpec 中执行此操作(或没有正确理解 MSpec),那是不可能的。我想知道这是否就是为什么在 MSpec 的一些 pro's/con 中我看到对 类 数量的引用,你最终可以列为负数。

SpecFlow 场景大纲示例

Scenario Outline: Successfully Convert Seconds to Minutes Table
    When I navigate to Seconds to Minutes Page
    And type seconds for <seconds>
    Then assert that <minutes> minutes are displayed as answer
Examples:
| seconds                       | minutes   | 
| 1 day, 1 hour, 1 second       | 1500      | 
| 5 days, 3 minutes             | 7203      | 
| 4 hours                       | 240       | 
| 180 seconds                   | 3         | 

发件人:https://gist.github.com/angelovstanton/615da65a8f821d7a43c92ef9e2fd0b01#file-energyandpowerconvertcalculator-feature

简短回答,目前 mspec 不支持此功能。几年前我们就计划好了,但是贡献从来没有回到 master 中。

如果您想要场景大纲,要么使用不同的框架,要么在助手 class 中创建参数化静态方法并从您的上下文中调用这些方法 classes。每个场景将为您留下 1 class。