Automation 同样的Specflow/BDD场景,使REST调用首先使用application/XML,然后使用application/JSON

Automation 同样的Specflow/BDD场景,使REST调用首先使用application/XML,然后使用application/JSON,automation,automated-tests,bdd,specflow,Automation,Automated Tests,Bdd,Specflow,我有大量的speclow/BDD测试用例来进行REST调用。这些REST调用适用于内容类型application/json和application/xml 但我需要手动更改这些内容类型,并在每次需要测试JSON和XML时重新运行所有相同的场景 是否有办法将所有场景运行两次,第一次使用ContentType application/json运行,第二次使用application/xml运行。是的,但是Specflow中没有自动支持它的功能 已经说过,您可以很容易地重用您的步骤并编写如下内容 Giv

我有大量的speclow/BDD测试用例来进行REST调用。这些REST调用适用于内容类型application/json和application/xml

但我需要手动更改这些内容类型,并在每次需要测试JSON和XML时重新运行所有相同的场景


是否有办法将所有场景运行两次,第一次使用ContentType application/json运行,第二次使用application/xml运行。

是的,但是Specflow中没有自动支持它的功能

已经说过,您可以很容易地重用您的步骤并编写如下内容

Given I am using JSON
And X 
When Y
Then it should Z

Given I am using XML
And X 
When Y
Then it should Z
甚至

@UsingJSON
Given X 
When Y
Then it should Z

@UsingXML
Given X 
When Y
Then it should Z
在这里,您可以检测步骤中使用的标签,甚至可以通过使用“BDD测试用例”来检测;只有系统行为的例子,我们有时称之为“场景”

我建议,首先,围绕使用中的不同系统的几个不同示例进行一些对话。这将帮助您了解行为是否真的相同。捕获这些示例还将帮助任何未来的开发人员了解真正的需求来自何处,并设定关于哪些源可能使用每种编码的预期

如果确实需要编写测试,请尝试在集成测试中包装代码的JSON和XML部分。XML和JSON是技术问题,而本地语言真的很难重构!所以你可能想用NUnit来代替

现在,我们有几个示例,它们展示了系统的行为方式,并用于确保正确连接,还有一些集成测试,用于检查它是否适用于XML和JSON。集成测试面向技术受众。如果非技术人员真的想检查他们是否工作,只需确保他们的名字正确,并给他们您构建的URL。大多数生意人都能看懂驼峰案

如果绝对必须使用JSON和XML运行每个场景,则可以创建“JSON”场景树和“XML”场景树,使用符号链接或复制文件的构建脚本,以确保它们从相同的英语/母语源运行,然后提供分别使用XML或JSON运行的不同步骤定义。不过,我想你会更容易接受我的第一套建议