问题标签 [bdd]

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 回答
3875 浏览

ruby-on-rails - 用 Cucumber 测试分页功能

我正在学习和喜欢黄瓜,现在有一个我不确定通过 BDD 继续进行的最佳方式的功能:分页。我有场景(在我的脑海中)有零页、一页、几页等,并且我想确保某些记录在某些页面上,确保“下一步”按钮不是链接最后一页等

我将使用 will_paginate,所以基本上我想弄清楚如何为特定的项目列表(例如书籍)BDD 其功能。

我确信我可以应付它,但我觉得这应该很常见,并想看看其他人做了什么。任何人都可以推荐一篇文章,或者给我一些示例代码,或者甚至自己拍摄一个示例吗?

0 投票
1 回答
339 浏览

ruby-on-rails - Test::Unit 测试在 OS X 上通过,在 CentOS 上出错

我有一组针对 Rails 应用程序的 Test::Unit 测试。它是在 Ruby 1.8.6、Rails 2.3.4 下的 OS X 上开发的。

我也在使用thoughtbot-shoulda 2.10.2。

我使用的是标准 Rails 夹具,而不是工厂。

我已经将该项目签出到 CentOS Linux 5 工作站上,以供其他开发人员使用。他正在运行 Ruby 1.8.7。

(该应用程序正在生产中的 CentOS Linux 5 上运行,并且在那里运行良好。)

在我同事的 CentOS 开发机器上,所有的单元测试都通过了。

但是,大多数(但不是全部)功能测试都出错了。我已经隔离了一个测试(从项目中删除了所有其他测试)以缩小故障排除范围。

我们得到的错误是......

我认为关键的谜团是为什么它找不到Address具有该 ID 的。

另一个因素是,当我注释掉这个块时,剩下的测试通过了。

有人见过这个吗?

故障排除建议?

0 投票
2 回答
3280 浏览

ruby - 在 RSpec 中检查(不存在)`puts`

我在 ruby​​ 项目中使用 rspec 进行测试,并且我想指定我的程序在使用 -q 选项时不应输出任何内容。我试过:

当有输出到控制台时,这并没有导致测试失败。

如何验证文本输出的缺失?

0 投票
3 回答
678 浏览

ruby-on-rails - 通过集成测试练习 BDD——我也需要单元测试吗?

目前,我的开发流程是这样的:

  1. 我将预期的行为描述为使用 WebRat 的集成测试
  2. 我编写了 Ruby on Rails 代码来提供这种行为,因此通过了测试
  3. 我重构,确保测试在过程结束时仍然通过
  4. 我编写下一个集成测试

在我看来,根据定义,我的集成测试正在测试我可以创建的每个模型、控制器和视图。实际上,我是否也因为不编写单元测试而遗漏了什么?

0 投票
12 回答
5002 浏览

unit-testing - 如何在 BDD / TDD 中对私有方法进行单元测试?

我正在尝试根据行为驱动开发进行编程,它指出如果不先编写失败的单元测试,就不应编写任何代码行。

我的问题是,如何将 BDD 与私有方法一起使用?
如何对私有方法进行单元测试?
是否有比以下更好的解决方案:
- 当我编写使用这些私有方法的公共方法时,先将私有方法公开,然后再将它们设为私有;

- 在 C# 中将所有私有方法设为内部并使用 InternalsVisibleTo 属性。

0 投票
2 回答
319 浏览

md5 - MD5 代码 kata 和 BDD

我正在考虑将 MD5 实现为代码 kata,并希望使用 BDD 来驱动设计(我是 BDD 新手)。

但是,我能想到的唯一测试是传入一个空字符串,最简单的方法是将哈希嵌入到我的程序中并返回它。

这样做的逻辑扩展是,我最终将哈希嵌入到我的解决方案中,用于每个测试并打开输入以决定返回什么。这当然不会产生一个有效的 MD5 程序。

我的困难之一是应该只有一个公共功能:

而且我看不到如何测试内部结构。

我的方法完全有缺陷还是 MD5 不适合 BDD?

0 投票
8 回答
1321 浏览

ruby-on-rails - Rails 上的 BDD - 社区更支持 Shoulda 还是 RSpec?

对于一个新的应用程序,我想开始涉足 BDD,我正在尝试在使用 RSpec 或 Thoughtbot 的 Shoulda 之间做出决定。我喜欢 Shoulda 使用的宏,而且它似乎并没有重新发明 Ruby/Rails 进行测试的方式,而只是提供了一个附加组件。另一方面,宏看起来有点“神奇”,而不是明确说明您正在测试的内容(但是我从涉猎中知道,在上面写一打“如果没有 xxx 应该无效”两行一个模型)。老实说,我发现为模型编写规范/测试非常简单,几乎无聊,但我发现为控制器编写它们非常困难,因为我永远不确定我应该测试什么或如何编写它。

我对 mocking 和 stubbing 的主题很不确定,因为我认为它们给了你错误的假设(因为你可以告诉它认为它有你需要的任何数据或假装调用了 Method X)而且我知道 RSpec 很重使用它们。我喜欢 RSPec 生成的文档,但我正在创建一个销售应用程序,而不是提供给客户,所以漂亮的文档没有那么有用。我喜欢 Cucumber,但它似乎有点矫枉过正(是的,我知道它可以与 Shoulda 一起使用)。

在这一点上,Rails 社区是支持 RSpec 还是 Shoulda?

0 投票
6 回答
902 浏览

oop - 行为驱动的开发是关于设计还是分析?

我对 BDD 以及它应该如何改进 TDD 的了解越多,在我看来这一切就越令人困惑。我从专家那里找到了关于设计的引述,也从其他专家那里找到了关于分析的引述。

我目前看到的方式是这样的:

1)分析:BDD

来自维基百科

面向对象分析的结果是以概念模型的形式描述系统在功能上需要做什么。

所以在 BDD 之后,我们有了需求(故事和场景)。但我不确定概念模型部分。

2) 设计:例如使用 CRC 卡的可靠性驱动设计等工具

3) 代码:对设计进行编码,可选择使用测试(就像他们所说的 TDD 做错了,我也觉得这很有用)

我怎么看错了?我现在很难从树林中看到森林。

0 投票
12 回答
6555 浏览

java - 吃、睡和呼吸单元测试/TDD/BDD

我确实在编写 API 和核心功能时编写单元测试。但我想成为吃、睡和呼吸 TDD 和 BDD 的酷迷。以正确的方式开始使用 TDD/BDD 的最佳方式是什么?任何书籍、资源、框架、最佳实践?

我的环境是带有 Grails 前端的 Java 后端,与多个外部 Web 服务和数据库集成。

0 投票
4 回答
23999 浏览

cucumber - Cucumber 表中的动态数据

我有一个Cucumber表,其中一个字段是我想用今天的日期填充的日期。有没有办法做到这一点而不必将今天的日期硬编码到表格中?

基本上我想进入Time.now.strftime("%Y-%m-%d")桌子而不让它休息。