使用 Rails 进行应用程序测试

2024-01-04

这更多的是一个一般性问题和某种最佳实践讨论。

如何测试 Rails 应用程序?

有 BDD 和 TDD 之类的口头禅以及 RSpec 和 Cucumber 之类的框架,但多少才足够,最好的方法是什么?

使用 Cucumber 作为集成测试就足够了吗? 你们也在编写额外的单元测试吗?

那么您的 Rails 测试策略是什么以及如何进行?

期待好的意见...


如何测试 Rails 应用程序? 彻底地、旨在百分之八十的覆盖率不少于 http://googletesting.blogspot.com/2010/07/code-coverage-goal-80-and-no-less.html!

关于“如何”的实际决定很容易,但“多少”可能很难回答。

我有几个小型(几乎但不完全是遗留的)项目,几乎没有测试,并且测试往往是代码中关键组件的低级单元测试。有时我希望他们有更多的测试,但一般来说,它们被放在一起,具有相当小的表面积,这使得调试和手动测试变得非常简单。

在我的日常工作中,我们在一个相当大的 Rails 项目中使用 rSpec、Cucumber 和 Selenium(超过 10 名开发人员,开发了几年)。

rSpec 为我们所有的模型、控制器、助手和其他类提供单元覆盖。

Cucumber 提供更高级别的功能和集成测试。

Selenium 用于使用 javascript 来练习 UI 的 javascript 密集区域(通过 Capybara 和 Cucumber 运行)。我们的测试和 QA 团队也在 Selenium 中使用了一套回归测试(发布到 QA 的版本通过我们的 CI 构建亮起绿灯)。

我现在的“最低限度”设置是在关键和/或复杂区域使用 rSpec 进行单元级覆盖,并在应用程序的关键路径上进行全套功能性 Cucumber 测试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Rails 进行应用程序测试 的相关文章

随机推荐

  • Lucene SpanNearQuery 中“Slop”的确切含义(或 ElasticSearch span_near 中的 slop)

    问题一 问题一
  • 如何判断 CSS 背景图像何时加载?事件被触发了吗? [复制]

    这个问题在这里已经有答案了 我有一个带有图像背景的侧边栏小部件 上面是一个搜索输入表单 我不希望在图像加载之前显示输入 有没有办法附加一个load像普通 img 元素 对象一样 CSS 背景图像的事件处理程序 我知道这可以在普通图像上完成
  • 嵌套循环和字符串连接的性能问题

    有人可以解释一下为什么这段代码需要这么长时间才能运行 即 gt 24 小时 行数为 5000 列数为 2000 即大约 10m 循环 有一个更好的方法吗 for int i 0 i lt m rows i for int j 0 j lt
  • 使用 Akka Stream 传输巨大的 json

    我有一个 json 板的巨大 http 响应问题 其中只有部分是感兴趣的 我无法更改响应结构 这是一个例子 searchString search redirectUrl 0 numRecords 123 refinementViewMod
  • 由多个用户编辑数据库记录

    我设计了数据库表 标准化 在 MS SQL 服务器上 并为应用程序创建了一个独立的 Windows 前端 少数用户将使用该前端来添加和编辑信息 我们将添加一个网络界面 以便稍后在我们的生产区域进行搜索 我担心如果两个用户开始编辑同一条记录
  • 速度模板 - 新线

    我一直在使用 Apache 的 Velocity 引擎和自定义模板 问题是 我无法生成具有相应换行符的字符串 我几乎尝试了我发现的所有内容 例如使用 esc n 和 esc newline 我已经在我的项目中使用转义工具 但似乎我当前使用的
  • 如何在 C++ 中实现对私有基类的强制转换

    如何在 C 中实现对私有基类的强制转换 我不想使用黑客 例如添加朋友等 定义公共转换运算符不起作用 EDIT 例如我有 class A base class class AX private A a child class AY priva
  • PHP变量插值与串联[重复]

    这个问题在这里已经有答案了 以下两种方法 性能 可读性等 有什么区别 您更喜欢哪一种 echo Welcome name s vs echo Welcome name 无论什么对你最有效 都有效 但如果你想追求速度 请使用以下命令 echo
  • 魔术方法(__get,__set)在扩展类中不起作用? [复制]

    这个问题在这里已经有答案了
  • chrome.downloads.download 无法从后台服务人员工作

    我正在尝试创建一个 Chrome 扩展 当单击工具栏按钮时 它将对页面内容进行一些分析 然后将结果保存 即下载 到用户的计算机上 单击按钮时我可以进行分析 但无法触发下载 这是我第一次编写 Chrome 扩展程序 因此任何帮助解决它不起作用
  • Xcode 7:断点停止时崩溃

    我有一个非常烦人的问题 当 Xcode 7 尝试进行符号化时 几乎在每个断点处都会崩溃 我已经做了几件事 包括删除 Xcode 并重新安装它 我在以前的 Xcode 6 X 上也遇到了同样的问题 有什么线索吗 我想知道我是否应该从头开始重新
  • Electron:如何捕获主进程的所有请求响应?

    我想从主进程中获取电子应用程序中发生的所有请求的响应 此图显示我想要获得的响应位于 响应 选项卡 而不是 Chrome 开发工具上的 标头 选项卡 https i stack imgur com AYA1G png 我没有使用
  • Hadoop 如何执行输入拆分?

    这是一个涉及Hadoop HDFS的概念问题 假设您有一个包含 10 亿行的文件 为了简单起见 让我们考虑每行的形式
  • 将网格内的数字转换为其相应的 x,y 坐标

    给定以下网格中的数字 从 1 到 36 如何确定它们在网格内的坐标 x y 0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8 9 1 10 11 12 13 14 15 16 17 18 2 19 20 21 22 2
  • 在 Ruby 中,是否有结合“select”和“map”的数组方法?

    我有一个包含一些字符串值的 Ruby 数组 我需要 查找与某个谓词匹配的所有元素 通过转换运行匹配元素 以数组形式返回结果 现在我的解决方案如下所示 def example matchingLines lines select line r
  • 使用unittest.mock.patch测试aiohttp客户端

    我使用 aiohttp 编写了一个简单的 HTTP 客户端 并尝试通过修补来测试它aiohttp ClientSession and aiohttp ClientResponse 然而 看起来好像unittest mock patch装饰器
  • 索引图像上的图形

    我收到错误 无法从具有索引的图像创建 Graphics 对象 像素格式 在功能上 public static void AdjustImage ImageAttributes imageAttributes Image image Rect
  • Android - 通过蓝牙传递对象

    Android 的蓝牙聊天示例对于学习如何在手机之间传递字符串非常有用 是否可以使用相同的代码在手机之间传递对象 我在两部手机中定义了相同的类 我只想将一个类的实例从一部手机传递到另一部手机 有可用的示例代码吗 我尝试使用序列化并用 obj
  • Android 中如何更改按下时颜色按钮的颜色?

    我有一些按钮 我将其背景颜色分别设置为红色 绿色和蓝色 当我按下按钮时 会生成单击事件 但 gui 中没有任何变化让用户知道按钮被按下 Android 按钮的默认背景灰色变为橙色 释放按下状态后又恢复为灰色 如何在彩色按钮上实现此功能 这是
  • 使用 Rails 进行应用程序测试

    这更多的是一个一般性问题和某种最佳实践讨论 如何测试 Rails 应用程序 有 BDD 和 TDD 之类的口头禅以及 RSpec 和 Cucumber 之类的框架 但多少才足够 最好的方法是什么 使用 Cucumber 作为集成测试就足够了