2

我一直在寻找测试 Rails 3 应用程序的方法,该应用程序的丰富界面具有相当多的 JS 代码。我尝试了 Capybara,但没有成功,所以现在我正在尝试 Jasmine。但我很难理解我应该如何去做。

从我收集到的信息来看,Jasmine 本身就可以很好地测试网站的 JS 组件,但如果我想直接测试界面呢?我需要类似的东西:

describe "Sign in" 
   Visit '/home'
   When user clicks "Sign in" link 
   The sign in form should appear

我真的可以对 Jasmine 做类似的事情吗?到目前为止,我的测试包含在 rails-jasmine gem 生成的结果页面中,显然它们在该 DOM 上运行,而不是在我网站的 DOM 上运行。

我现在正在尝试使用常青树,但我得到了相同的结果(我什至不能包括 jQuery)。

有任何想法吗?

谢谢!

4

3 回答 3

2

要回答您的问题 - 不,Jasmine 本身不会以某种方式让您浏览您的网站并在如此高的级别上进行测试,例如与 Cucumber 的集成测试。

Jasmine 主要是为了测试你的 js 的 API 而构建的,所以基本上你只能测试 URL 路由或其他东西,如果它们是你的 API 的一部分。

例如,您可以测试主干路由器如何响应窗口的当前位置,或从一个位置导航到下一个位置,但这是因为主干路由器显式处理 URL 位置。

于 2012-12-11T16:13:09.190 回答
0

这可能会有所帮助:http ://railscasts.com/episodes/275-how-i-test

于 2012-07-10T02:22:21.717 回答
0

您可以尝试jasminerice与固定装置一起使用。如果目的是测试 JS DOM 交互,那么fixtures 就是要走的路。但是,如果这个想法也是为了测试服务器交互,那么使用类似的东西cucumber是有道理的。

于 2013-02-03T05:24:51.580 回答