我的要求是使用specflow成功代码200单独测试URL的动态列表
当前方法:URL列表在下面的场景大纲中进行了硬编码,其中我能够成功测试每个URL。在这里,我的测试会在场景大纲中运行尽可能多的URL,如果有的话,我可以很容易地识别失败的测试。
Scenario Outline: URL test
Given list of URL's
When I launch each URL
Then I should expect 200 HTTP status code
Examples:
| URL |
| url 1 |
| url 2 |
| url..n|
新方法:我正在考虑动态地从网络服务获取网址列表,而不是在方案大纲中获取硬编码。
Scenario Outline: URL test
Given a service to get list of URL's
When I call the API get
Then I should expect 200 HTTP status code
通过上述方法,我可以获取URL的列表,并通过迭代我可以单独启动它们。这里的问题是因为没有场景大纲,在单个测试中,将执行完整的URL列表。
我需要一种可以创建动态数据集的方法,每个URL测试都会在自己的测试方法中进行,而不是在单个测试方法中执行URL列表。 < / p>
使用的工具: C#,NUnit,Specflow,Resharper,Visual Studio
使用 ReSharper 执行测试,我查看了动态表/实例概念。
答案 0 :(得分:2)
由于我不能(还)添加评论,我将提供我的评论作为答案。
在这种情况下,您可能不应该使用场景。场景旨在从业务角度描述系统的行为(换句话说,业务价值)。
在这里,您似乎想确保uri的列表响应正常。这听起来更像是内部集成测试,而不是实际的业务验证。
我建议将其置于单一集成测试中。在那里,你可以简单地创建一个失败的uri的集合。在测试结束时,您可以简单地断言集合是否包含0个元素。
答案 1 :(得分:1)
在测试执行期间无法动态生成表数据,因为已经编译了.cs文件。
改为编写参数化单元测试。
当然,您可以编写一个工具来解析您的网址,重写.feature文件,重建SpecFlow解决方案并运行测试。 JFF:)