我需要什么才能开始使用specflow

时间:2014-08-20 11:08:11

标签: specflow

我试图将SpecFlow用于.net项目。我是SpecFlow的新手。开发团队正在使用NUnit,因此SpecFlow似乎与Cucumber一起成为一个不错的选择。但是,开发团队回来后说SpecFlow无法使用,说他们没有可在所需级别使用的API /服务。目前他们所有的自动化测试都是通过使用Test Complete的UI进行的,我很想转向API级别的测试。

任何人都可以向我解释为什么SpecFlow无法使用,我很抱歉这是一个新手问题,但没有人可以回答,我已经问过我能想到的每个人,当然,第一步是看看我们是否可以将SpecFlowNUnit一起使用,但可能不会。

任何人都可以在接下来的步骤中为我提供指导,我怎么能确定这不是一个选项,而不用担心它会被阻止?

谢谢

2 个答案:

答案 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的更多信息,我可能会为您提供一些代码示例或参考。

  • 是否通过HTTP公开API?
  • 用户界面是网络,移动设备还是桌面设备 应用?
  • 您是否尝试过使用SpecFlow?

答案 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并不关心。它简单地执行方法而不知道里面是什么。