问题标签 [specflow]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
504 浏览

asp.net-mvc-3 - 使用 Specflow 推动基于 .NET MVC 3 的项目的外部开发

我想用 TDD 和 DDD 做 ATDD,我想首先发现域模型(在我的例子中是电子商务)的行为(使用模拟)。您可以想象,在 DDD 分层中,我们可以有应用程序服务调用域服务和存储库或其他服务和非业务逻辑代码,只有与应用程序相关的任务)请使用下面我试图理解的文本:

如何使用模拟来发现我的电子商务域的行为,然后进入更细化的 TDD 开发以实现所需的行为。

这是另一个问题的摘录(作为答案)。

BDD,什么是功能?

“选择您需要执行的任何任务,打开一个空白文本文件并尝试使用简单的句子来解释行为。每个句子都应该以三个关键字之一开头:给定、何时和然后。使用您最喜欢的 BDD 框架编写代码将解析这些句子并刺激应用程序进入启动状态(给定),执行一些命令(何时)并断言过渡状态(然后)。应用程序代码可能从单纯的模拟开始。逐渐用逐渐构建的代码替换那些模拟,以更高的信心和质量水平发展您的应用程序。”

有人可以提供一些使用两种方法从模拟(RhinoMock,Moq)开始的具体示例:

1.通过控制器的动作驱动 ATDD 和2.使用
Watin 驱动程序(页面对象,WatiN MVCContrib 扩展)或 Selenium。

如果我不使用。2. 当我自己访问一些页面并执行一些操作(“何时”我做某事:导航、发布数据)并验证这些操作的结果时,我是否能够看到一些示例数据。

要完全理解我的问题的性质,请阅读以下内容:http: //jockeholm.wordpress.com/2010/02/14/combining-tddbdd-with-ddd/ 特别是第 3 步和第 4 步。

我将为第 3 步提供文本:

3.[BDD/ATDD] 对于每个测试场景,实现一个失败的可执行示例,因为系统不支持该行为。然后,使用由外而内的开发,并广泛使用模拟对象,来充实可执行示例中指定的行为。

谢谢,拉德

0 投票
1 回答
1622 浏览

specflow - SpecFlow - 空引用异常


我最近一直在玩 SpecFlow,但我没能让它正常工作。我采取的步骤是:
1. 下载并安装 SpecFlow
2. 下载并启动留言板解决方案 (VS2010)
3. 在调试器下使用 Visual NUnit 从该项目运行 NavigationToHomepage 测试。4.上线
出现空引用异常。 堆栈跟踪:Scenario: Navigation to homepage

在 F:\VS Projects\SteveSanderson-GuestbookDemo-bf2bdab\SteveSanderson-GuestbookDemo-bf2bdab\Guestbook.Spec\Features\Browsing.feature.cs: 留言簿中的 Guestbook.Spec.Features.BrowsingFeature.ScenarioSetup(ScenarioInfo scenarioInfo) 中。 f:\VS Projects\SteveSanderson-GuestbookDemo-bf2bdab\SteveSanderson-GuestbookDemo-bf2bdab\Guestbook.Spec\Features\Browsing.feature:line 6 中的 Spec.Features.BrowsingFeature.NavigationToHomepage()
可能有什么问题?
更新
我尝试在另一台计算机上执行相同的操作,并且在那里一切正常。我完全糊涂了。

0 投票
2 回答
589 浏览

bdd - 编写包含用户决策提示的 SpecFlow 场景

我是 SpecFlow 和 BDD 的新手,在编写需要用户做出选择的场景时遇到了障碍。基本上这里是这样的场景:

我不知道如何超越这一点。这里有两种测试路径,一种用于用户对确认说“OK”时,一种用于用户说“Cancel”时。

我想说“如果我点击确定”,然后是“那么记录应该被删除”等等。但似乎应该以更好的方式分解它。

你会如何改写这个场景?

0 投票
8 回答
34375 浏览

c# - SpecFlow 和复杂对象

我正在评估SpecFlow,但我有点卡住了。
我发现的所有样本基本上都是简单的对象。

我正在从事的项目严重依赖于一个复杂的对象。一个接近的样本可能是这个对象:

有谁知道如何编写我的功能/场景,MyObject从“给定”步骤实例化并在“何时”和“那么”步骤中使用?

提前致谢

编辑:请记住:是否支持嵌套表?

0 投票
2 回答
3972 浏览

bdd - MSpec 和 SpecFlow 什么时候使用?两者的优点/缺点是什么?

我正在尝试开始使用 BDD,并找到了有关 MSpec 和 SpecFlow 的查看博客文章。我目前不太确定我什么时候会使用哪个框架以及这两个框架的优点/缺点是什么。

查看文档,似乎 MSpec 使用上下文规范样式,而 SpecFlow 使用 Given/When/Then 样式。我也不介意,但我想知道当项目/测试套件增长时是否有任何陷阱需要注意。

基本上,在日常工作中使用它的人的一些现实世界的建议/反馈会很棒。

0 投票
2 回答
447 浏览

silverlight - Silverlight 单元测试,处理嵌套方法中的异步调用

在为 silverlight 创建单元测试时,测试框架似乎具有内置功能以帮助进行异步调用,但仅限于测试方法中。如果在您正在调用的方法的子方法中有一个异步调用怎么办。

作为一个例子,我们使用 Specflow 来测试我们的 ViewModel,我们想要调用命令的 Execute 方法,然后该命令异步调用 Web 服务。在断言结果之前,如何确保 while 命令完成?

例如,这是命令

在继续之前,我需要等待整个命令完成。

0 投票
1 回答
185 浏览

specflow - 使用 3rd 方服务进行测试

我正在开发一个深深依赖于 3rd 方 Web 服务的 asp.net mvc 站点。

我想知道开发这个网站的最佳方法是什么,因为 Web 服务还没有准备好,我等不及准备开始开发了。

我正在使用 Specflow 和 selenium 来推动我的发展。

0 投票
0 回答
1217 浏览

nunit - nunit 测试中的 app.config 用于验收测试

我写了一些规范流测试。为了让这些测试运行,我需要在 App.config 中配置一些部分。在visual studio中使用resharper作为测试运行程序运行测试它工作得很好,但是当使用NUnit测试运行程序运行测试时,似乎没有读取App.config并且依赖它的所有测试都失败了(在我的情况下是每次测试)。

是否有可能让 NUnit 测试运行程序读取为 .dll 指定的 app.config?

更新:我使用的是 2.5.10 版本的 NUnit。

我的 app.config 文件:

0 投票
1 回答
552 浏览

c# - Specflow:在单词之间生成带有下划线的测试

在 specflow 中,如果您创建一个名称为“做一些有用的事情”的场景,则生成的单元测试将被命名为“DoSomethingUsefull”(不带空格)。如果场景名称很长,这在 nunit 测试运行程序中不是很易读。

有没有办法用下划线分隔单词?(像一个设置?)

0 投票
1 回答
5269 浏览

nunit - 如何在测试运行时报告 SpecFlow 场景?

我已经设法调整了我的 SpecFlow 测试的输出,以便它可以很好地读取,只有报告的步骤加上失败。但是如果没有报告功能和场景名称,它仍然很难阅读。

查看生成的代码,Feature 和 Scenario 名称似乎被编码为 NUnit DescriptionAttributes。

我可以将 SpecFlow 或 NUnit 配置为也将这些报告给标准输出,这样我就可以得到一个流畅的“类似故事”的输出吗?