标签: specflow

如何对404进行单元测试或集成测试 - 未找到?

我的团队正在使用S#arp架构框架在ASP.Net MVC 2中编写内容管理的Web托管应用程序.我正在使用SpecFlow和WatiN进行集成测试,使用NUnit进行单元测试.

我有一个自定义控制器工厂,它根据URL和站点在数据库中查找页面,然后加载适当的控制器和操作.当在数据库中找不到页面(或站点)时,它还会加载错误控制器.

我想写一个单元测试或集成测试,当URL无效时,验证404页面是否正确显示.WatiN无法检查响应头,因此无法准确确保加载了实际的404页面.这可能会消除集成测试作为解决方案.

我是TDD和BDD的新手,所以我可能会遗漏一些明显的东西.此外,我正在对这个项目进行改造测试,这使得它变得更加困难.

提前致谢.

tdd bdd nunit watin specflow

4
推荐指数
1
解决办法
1121
查看次数

我可以让SpecFlow生成缺少步骤定义的列表而不运行测试吗?

我正在重构我们的SpecFlow实现的BDD测试.作为这项工作的一部分,我已经评论了大多数步骤定义.

当我运行测试时,我会看到"找到一个或多个步骤没有匹配的步骤定义".信息.

但是,我宁愿不要等到测试实际运行.有没有办法让SpecFlow在不运行测试的情况下检查缺少的步骤定义?

specflow

4
推荐指数
1
解决办法
1424
查看次数

处理SpecFlow中的多个轻微变化

大家好我们正在开发一个可通过SOAP和REST(xml和JSon)获得的Web服务.我们的specflow功能大致相同,即:

Scenario: There are at least 3 radio Channels 
Given The test server is up and running 
And The previously obtained channel list is reset
When I request a list of radio channels
Then the resulting deliveryPackage contains a list of  at least 3 items
Run Code Online (Sandbox Code Playgroud)

所有这些功能都需要针对SOAP接口,REST/Xml接口以及REST/JSon接口进行测试.

在黄瓜中,可以使用-R运行这些功能来指示步骤文件所在的位置,但是在SpecFlow中,我还没有找到绕过步骤文件的方法,因此我可以使用相同的功能运行不同的步骤.

我宁愿不必编写每个方案3次,以便更改要使用的步骤实现.

那么,有两个问题:1)如何针对3种不同的接口运行3次特征,这些接口需要完全相同的场景?2)每次如何选择正确的步骤文件?

解决(1)可能会解决(2).

.net bdd cucumber specflow gherkin

4
推荐指数
1
解决办法
2870
查看次数

带有Specflow和模拟浏览器行为的BDD

我已经开始使用SpecFlow来尝试为我的一个ASP.NET MVC Web应用程序编写规范.我遇到了两个基本问题,我没有在谷歌找到任何答案.

  1. 有没有办法模仿浏览器行为,而无需创建实际的浏览器实例.我知道有像"WatiN"这样的库可以创建实际的浏览器实例,我不愿意使用它,因为它可能会显着降低测试性能(我需要在构建服务器中运行它们)

  2. 我需要依赖浏览器或模拟浏览器的原因是我不想在控制器上进行测试,因为它不能保证在我直接实例化控制器时触发所有的动作过滤器(因为它是asp.net mvc引擎的一部分).有人可以建议我采用方法测试我的控制器 - 所有动作过滤器都启动了(这样我可能不想使用浏览器/模拟浏览器)?

谢谢

大黄蜂

asp.net asp.net-mvc bdd specflow

4
推荐指数
1
解决办法
598
查看次数

可以在步骤之间共享SpecFlow功能吗?

我们有从三个不同角度测试的代码:

  • 内部(直接呼叫)
  • 网络服务
  • Web应用程序

由于我们不想编写三次功能文件,似乎我们应该在Steps之间共享功能,但我无法弄清楚如何完成这项功能,除了可能在VS项目之间共享文件,这似乎一直是有点,好吧,片状.

在项目之间共享功能文件是实现这一目标的最佳方式,还是有更明智的方法?

c# testing bdd specflow

4
推荐指数
1
解决办法
2568
查看次数

运行一次登录方案,然后运行多个方案

我要登录一次,然后在关闭浏览器之前运行几个方案(假设有7个方案)。

我使用Background而不是在每个场景中都登录了Given,但是似乎每次运行场景时,它都首先登录。

这减慢了我的测试速度。

我想做的事:

登录并在同一浏览器窗口上运行多个方案,然后在完成后将其关闭。

c# scenarios specflow

4
推荐指数
1
解决办法
1857
查看次数

为Specflow配置cultureInfo

我有两台具有不同文化的机器,其中一种格式mm/dd/yyyy被Specflow成功解析(它是一个步骤参数),但在另一台机器中失败.

我希望我的测试能够独立于文化.那么如何配置Specflow CultureInfo.InvariantCulture用于解析日期?

datetime parsing specflow

4
推荐指数
1
解决办法
465
查看次数

在线找到多个匹配绑定有两个不同的参数

我在同一个功能文件中写了两行(When's)

When user $action1$ $key1$ with $value1$ for $atttributeType_Value$ in $Filename1_SectionId1$
Then abc
When user $action2$ $key2$ with $value2$ in $Filename2_SectionId2$
Then def
Run Code Online (Sandbox Code Playgroud)

步骤定义文件中的相应步骤定义

[When(@"user (.*) (.*) with (.*) for (.*) in (.*)")]
public void abc()
{   //operation }

[When(@"user (.*) (.*) with (.*) in (.*)")]
public void def()
{   //operation }
Run Code Online (Sandbox Code Playgroud)

但是,它显示错误为"找到多个匹配绑定.导航到第一个匹配..."

当我尝试导航第一行时给出错误...但是当我使用第二行时导航.它正确导航.

我在"<"和">"所在的地方使用了"$".

.net c# bdd specflow feature-file

4
推荐指数
1
解决办法
2447
查看次数

我应该在Gherkin/Specflow Given/When/Then语句中使用什么人和心情?

我对人们用Gherkin语言编写语句以描述为验收测试执行的各种操作的方式感到困惑.

在一些文章中,人们使用"我",在一些文章中人们使用"用户".

对于reaction(Then)语句也是如此:

Case 1 --> xyz page should be displayed
Case 2 --> xyz page is displayed

Ex 1:
Given statement abc
When user performs action A
Then screen xyz should be displayed

Ex 2:
Given statement abc
When I perform action A
Then screen xyz is displayed
Run Code Online (Sandbox Code Playgroud)

写"用户"或"我"是否更好,写"应该是"还是"是"更好,这样我的BDD场景是否符合标准?

对任何文章的引用也将是一个很大的帮助.提前致谢.

bdd acceptance-testing cucumber specflow gherkin

4
推荐指数
1
解决办法
1071
查看次数

MsTest.exe没有找到任何测试

我有一个selenium Specflow c#项目,我可以从测试资源管理器和ReSharper单元测试资源管理器执行测试.

但是当我运行命令行来执行测试时(这就是Jenkins执行测试的方式)

它没有在DLL中找到任何测试

mstest /testcontainer:MoneyUITests.dll /test:NavigateToLoans
Microsoft (R) Test Execution Command Line Tool Version 15.0.26621.2
Copyright (c) Microsoft Corporation. All rights reserved.

Loading MoneyUITests.dll...
Test NavigateToLoans cannot be found.
Test NavigateToLoans cannot be found.
Starting execution...
No tests to execute.
Run Code Online (Sandbox Code Playgroud)

不确定我做错了什么,看起来很奇怪,visual studio设法找到并执行测试没有问题.

c# selenium mstest specflow

4
推荐指数
1
解决办法
2137
查看次数