问题标签 [webrat]

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

ruby-on-rails - 如何使用 Cucumber 和 Webrat 检查表单是否预先填充了值?

我正在使用 Rails 学习 Cucumber 和 Webrat,并且想要一些关于测试“编辑”表单的最佳方法的建议。当我浏览到用户的个人资料时,我会看到一个编辑表单,其中用户的信息预先填充在表单字段中。我希望能够测试这些字段是否确实包含我期望的信息。这是我的场景:

Cucumber 正确地告诉我,我需要定义以下自定义步骤:

我确信我可以找出一些讨厌的正则表达式来实现评估这些步骤,但我觉得必须有一些已经存在或更优雅的东西我可以做。您如何评估表单字段中预先填充数据的表单?

0 投票
2 回答
1615 浏览

ruby-on-rails - 使用 Webrat 查找包含链接的标签

所以我正在用Cucumber做 BDD,并有一个从数据库填充复选框的表单。复选框的标签包含超链接。到目前为止,还不算太奇特(注意,这是HAML而不是 Erb,但它应该对任何 Rails 人来说都足够可读):

问题是在我的 Cucumber 功能中,我不知道如何找到该复选框来检查它。故事的相关部分是这样的:

如果我使用的是裸webrat_steps.rb文件,我会收到以下错误:

我很确定这是因为这种link_to()方法,我用它来使“Escape Pod”成为指向实际网站的超链接。但是我无法link_to从我的 Cucumber 步骤轻松访问,而且我无法找出任何合理的方式将 Webrat 指向正确的复选框,除非在我的步骤中拼凑一大堆超链接代码(这使得它非常脆弱)。

我的 BDD 在这一点上停滞不前。我不想仅仅因为它很难测试就删除链接。而且感觉应该不难测试。Webrat 只是限制了我可以传递给该checks()方法的内容。谁能为此提出一个优雅的答案?

0 投票
2 回答
654 浏览

ruby-on-rails - 使用 webrat 选择页面元素

有一个产品列表(html 表)。每行都有产品名称,并以“添加到购物车”按钮结尾。如何在 webrat 的购物车中添加 2 个“咖啡”和 3 个“茶”?

对应的html:

0 投票
4 回答
1009 浏览

ruby-on-rails - 将 webrat 的包含(文本)匹配器与 haml 一起使用

我正在使用以下 webrat 匹配器:

使用以下哈姆:

我已经编写了黄瓜步骤'然后我应该看到“你有 10 个学分”',它使用了上面的 webrat 匹配器。步骤失败,webrat 没有在响应中找到文本,因为 haml 实际产生

如何让匹配器匹配 haml 产生的输出?

注意:以上是我正在处理的情况的简化示例。编写以下 haml 不是可接受的解决方案:

0 投票
3 回答
678 浏览

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

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

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

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

0 投票
5 回答
4673 浏览

css - Cucumber/Webrat:点击 CSS 类的链接?

是否可以通过类名而不是 id、文本或标题来跟踪链接?鉴于我有(哈哈,黄瓜内幕他?)以下html代码:

  • 我不想按文本匹配,因为我必须关心测试中的翻译值
  • 我想让我的按钮看起来都一样,所以我将使用 CSS 类。
  • 我不想为每个链接分配一个 id,因为其中一些是通过容器和链接类完美识别的

我在 Cucumber/Webrat 中有什么遗漏的吗?或者您有什么建议可以更好地解决这个问题?

感谢您的帮助和最诚挚的问候,

编辑:我在这里发现了一个关于这个话题的有趣讨论——现在似乎仍然是一个悬而未决的问题。您对此还有其他解决方案吗?

0 投票
2 回答
978 浏览

ruby - 当多个名称和 ID 相同时,如何在 Webrat 中填写特定字段?

我刚刚开始使用 Cucumber 和 Webrat,并且正在向现有的 Rails 应用程序添加功能规范。应用程序中的一个页面上有多个表单,代表构建新角色对象的不同方式。这是一个简化的示例:

如您所见,页面上有(至少)两个具有相同名称和 id 的字段,尽管它们采用不同的形式,我无法在 Webrat rdoc 或源代码中找到指定特定一。

我知道我可以更改其中一个的名称或 id,但我必须偏离 Rails 命名约定才能这样做,我真的不想这样做。我也可以将表单放在不同的页面上,但是对工作流程的修改比我想做的要多。我也可以尝试将它们合并到一个更加模块化和动态的单一表单中,但是为了支持给定的测试框架而不得不对 UI 进行结构性更改似乎有点问题,并且可能并不总是可行的,而且我会需要javascript。

有没有办法在 Webrat 中指定这些字段之一,或者我应该放弃并在另一个项目上尝试 Cucumber?

0 投票
3 回答
467 浏览

ruby-on-rails - 不使用 WebRat 检查元素

以下工作正常:

现在我需要用这样的步骤来补充它:

标准的“而且我不应该看到”并不令人满意,因为它会在页面的任何地方找到目标短语——而不仅仅是在按钮内。我特别需要检查是否不存在带有目标文本的按钮。

我的第一直觉是尝试这样的事情:

但是当然,只要页面上有任何不包含目标文本的按钮,即使还有一个或多个按钮确实包含目标文本,这也会过去。

你的意见?

非常感谢,

史蒂文。

0 投票
1 回答
333 浏览

enums - webrat安装错误

当我尝试在我的 OS X 中安装 webrat 时出现以下错误,请建议我如何解决这个问题。

错误:

0 投票
3 回答
962 浏览

ruby - 更改域名时烦人的 Webrat/Selenium 警告

当我在 Selenium 模式下使用 AJAX + Webrat 时,我经常需要指定真实的域和子域。因此,我会收到很多这样的消息:

14:00:45.222 警告 - 您似乎正在将域从 http://test.host:3001更改为 http://elabs.test.host:3001/dashboard 这可能会导致浏览器的“权限被拒绝”(除非它作为 *iehta 或 *chrome 运行,或者 selenium 服务器以代理注入模式运行)

虽然准确,但它会阻塞我的输出,对我来说毫无用处。关于如何在 Selenium 模式下运行时抑制此消息的任何想法?