首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用Capybara测试逐步增强的功能

使用Capybara测试逐步增强的功能
EN

Stack Overflow用户
提问于 2012-07-26 18:20:28
回答 2查看 118关注 0票数 1

我正在使用Capybara在一个逐步增强的网站上测试功能。假设我的功能是在位置的层次结构中导航。非javascript版本包括当我们点击不同的位置时获得页面的新版本。增强的javascript版本可以打开隐藏的元素,或者通过Ajax加载新的信息。

我首先为非javascript版本编写一个测试,如下所示:

代码语言:javascript
运行
复制
When I visit the page for "UK"
And I click "London"
Then I should see the information for "London"

使用默认的机械化驱动程序,测试失败,我开发了功能,然后测试通过。

然后,我为javascript版本创建了一个相同的测试,标记为@javascript。它使用javascript驱动程序运行测试,该测试之所以通过,是因为该功能已经实现。(它通过非js流运行)。但是,我希望Javascript版本的测试在这一点上失败,因为该功能还没有用javascript增强。

因此,我正在寻找一种好的策略来确定整个新页面是否来自服务器,并确保两个版本的功能都有效。(我计划将其与pushState集成,因此不能测试更改后的网址)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-26 21:40:38

我很有兴趣听到其他人对此的看法--我不相信Cucumber是适合这项工作的工具,因为你是从用户交互的角度来描述功能的,而且听起来你的渐进式增强的实现本质上会导致相同的用户交互。

除此之外,我认为您可能想要考虑在页面本身中构建某种测试钩子来帮助实现这一点。在不了解你的确切情况的情况下很难说出什么,但也许是以下其中之一:

  • 脚本增强版本的页面可以向DOM添加一些元素,表明增强是活动的,或者表明数据来自AJAX请求而不是页面加载。
  • 您可以在每次加载(例如,新的GUID)时生成一个随机的页面标识符(来自服务器),将其嵌入到DOM中,并断言它在交互后没有更改(在增强版本上)。这将是实现您声明的目标(“确定是否有一个完整的新页面来自服务器”)的一个非常简单的方法
票数 1
EN

Stack Overflow用户

发布于 2012-08-09 01:07:41

为什么你的javascript“增强版”和非增强版的工作方式一样?使用@javascript的cucumber测试应该进行测试,以确保增强功能有效。

例如,*如果javascript打开一个模式对话框,而不是跟随一个新页面的链接,则对其进行测试。*如果javascript提交了一个表单并更新了一个值,则对其进行测试。

如果没有javascript支持,这些测试将会失败。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11667243

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档