我试图将SpecFlow
用于.net项目。我是SpecFlow
的新手。开发团队正在使用NUnit
,因此SpecFlow
似乎与Cucumber
一起成为一个不错的选择。但是,开发团队回来后说SpecFlow
无法使用,说他们没有可在所需级别使用的API /服务。目前他们所有的自动化测试都是通过使用Test Complete的UI进行的,我很想转向API级别的测试。
任何人都可以向我解释为什么SpecFlow
无法使用,我很抱歉这是一个新手问题,但没有人可以回答,我已经问过我能想到的每个人,当然,第一步是看看我们是否可以将SpecFlow
与NUnit
一起使用,但可能不会。
任何人都可以在接下来的步骤中为我提供指导,我怎么能确定这不是一个选项,而不用担心它会被阻止?
谢谢
答案 0 :(得分:2)
SpecFlow有一个单元测试生成器,可为各种单元测试框架生成单元测试代码。 SpecFlow以其默认配置生成NUnit测试。 specflow.org上的入门页面解释了使用SpecFlow和NUnit http://www.specflow.org/getting-started/启动和运行的快速方法。
如果UI是基于HTTP的,则SpecFlow可以与WebDriver或其他浏览器自动化框架一起使用来测试UI。此博客文章概述了如何开始使用SpecFlow,NUnit和WebDriver,http://blogs.lessthandot.com/index.php/enterprisedev/application-lifecycle-management/using-specflow-to/
我不清楚您要测试的API。如果您可以提供有关您尝试测试的特定API和UI的更多信息,我可能会为您提供一些代码示例或参考。
答案 1 :(得分:1)
SpecFlow不会运行测试。它只是将可读语言映射到测试。如果他们的测试可以作为nunit测试编写,那么您可以使用SpecFlow。没有变化,这就是它的样子。
Scenario: Running 'testname'
Then I execute the test 'TestName'
您可以将其映射到
[Then(@"I execute the test '(.*)'")]
public void ExecuteSpecificTest(string testname)
{
// Using reflection, execute the method listed
}
显然你会想做得更好。你想要一个给定的,何时,然后你清楚地显示设置,动作,然后比较预期的经文实际结果,但它是不必要的。然而,最佳做法是另一个讨论。
总结一下,代码是代码,SpecFlow只是映射到代码。您可以使用WatiN,WebDriver或其他任何东西挂钩到UI或API。 SpecFlow并不关心。它简单地执行方法而不知道里面是什么。