在小黄瓜语法中(由Cucumber和SpecFlow使用,我可以通过在前面添加'#'来注释掉一行
有没有办法阻止评论多行?
我有一些SpecFlow功能(使用Gherkin语法),我想暂时禁用该功能,以防止其测试运行?
是否有一个属性可以标记该功能来执行此操作?我猜测适用于Cucumber的东西也可能适用于SpecFlow.
我想在SpecFlow功能中包含一些注释.
我收到以下错误:
Custom tool error: Parsing error near '/*'
Run Code Online (Sandbox Code Playgroud)
我尝试过以下方法:
// comment
/* comment */
-- comment
' comment
Run Code Online (Sandbox Code Playgroud)
我该怎么做呢?
我是BDD的新手,但我发现它非常有趣,并希望使用BDD开发我的下一个项目.在谷歌搜索和观看截屏后,我仍然有很多关于BDD在现实生活中的问题.
1.陈述性或势在必行的场景?
我看到的大多数给定的时间场景都是用UI(命令式)编写的.
Scenario: Login
Given I am on the Login-page
When I enter 'AUser' in the textbox 'UserName'
And I enter 'APassword' in the textbox 'Password'
And I click the 'Login' button
Then I should see the following text 'You are logged in'
Run Code Online (Sandbox Code Playgroud)
我发现这些测试非常脆弱,并且它们没有说明点击按钮的商业价值.我认为这是维持的噩梦.为什么大多数示例都使用命令性场景?
Scenario: Login (declarative)
Given I am not logged in
When I log in using valid credentials
Then I should be logged in
Run Code Online (Sandbox Code Playgroud)
如果您更喜欢声明式样式,那么如何描述"主页"或"产品页面"等内容?
2.运动UI与否?
我看到的大多数步骤实现都使用WatiN,White或类似的东西从用户的角度来实现场景.启动浏览器,单击按钮.我认为它极其缓慢而脆弱.好吧,我可以使用类似Page对象的东西来减少测试.但那是另一项工作.特别适用于具有复杂UI的桌面应用.
您如何在现实项目中实施场景 - 行使UI,或通过测试控制器/演示者?
3.真实数据库与否?
当给定部分场景时,通常需要一些数据存在于系统中(例如,一些用于商店应用的产品).您如何实现该部分 - 将数据添加到真实数据库(完整的端到端测试),或者向控制器提供存储库存根?
等待有经验的答案! …
我正在使用SpecFlow,我想写一个如下的场景:
Scenario: Pressing add with an empty stack throws an exception
Given I have entered nothing into the calculator
When I press add
Then it should throw an exception
Run Code Online (Sandbox Code Playgroud)
这calculator.Add()将是一个例外,所以如何在标记的方法中处理这个[Then]?
尝试使用全新的VS2010 Professional安装运行SpecFlow.创建了一个新的控制台应用程序并添加了对NUnit和SpecFlow的引用.创建了SpecFlow功能.创建具有默认模板代码的.feature.
现在我尝试运行此测试,但我不明白如何.当我右键单击项目(在顶层)时,鼠标下拉菜单中没有"运行测试"选项.没有SpecFlow正确安装,我缺少一些参考或我需要安装的其他工具?
我试图决定是否应该使用Cuke4Nuke或SpecFlow.每个人的利弊是什么?关于哪个更好的观点和原因.
谢谢!
Gherkin语法文件只是纯文本,因此可以使用任何编辑器,如记事本.但是,我们使用它的一个更重要的事情是提供样本数据表.没有良好的格式化选项,文件变得难以阅读.
对于visual studio,如specflow.org或https://github.com/henritersteeg/cuke4vs,有一些很好的工具(请参阅:如何在Visual Studio中为.feature文件突出显示Gherkin语法?).使用eclipse的开发人员的另一个选项在Cucumber IDE中讨论了使用自动完成功能编写功能吗?但是,我不想要求我们的业务分析师安装它.
这是一个语法高亮显示文件(http://productive.me/develop/cucumbergherkin-syntax-highlighting-for-notepad/),可以导入到notepad ++中,但它对表格格式没有任何作用.
我是否还有其他选择可以让非开发人员有效地编辑.feature小黄瓜文件?
我有2个功能使用常见的'When'步骤,但在不同的类中有不同的'Then'步骤.
我如何在我的两个步骤中的When步骤中从我的MVC控制器调用中访问ActionResult?
是否可以"强制"为specflow功能文件重新生成步骤定义?我创建了此功能文件,但无法生成所有步骤.我收到一条消息,说明所有步骤已经绑定但是当我运行测试时,我得到一个错误,相同的步骤没有绑定.我已经清除了所有内容并重新创建了功能和步骤定义,但现在我无法生成所有步骤,因为specflow表示它们已被绑定.