Jquery 如何在Jasmine中加载Rails视图进行测试?
下面的代码在浏览器中工作,但是如何用Jasmine测试它呢?单击Jquery 如何在Jasmine中加载Rails视图进行测试?,jquery,ruby-on-rails,coffeescript,jasmine,jasmine-jquery,Jquery,Ruby On Rails,Coffeescript,Jasmine,Jasmine Jquery,下面的代码在浏览器中工作,但是如何用Jasmine测试它呢?单击#opener,它将显示一个jQuery对话框,并进行ajax调用以加载内容: $ -> $( "#dialog" ).dialog({ autoOpen: false }); $( "#opener" ).click -> $( "#dialog" ).dialog( "open" ); $( "#dialog" ).load('/content'); 规格js.coffee: describ
#opener
,它将显示一个jQuery对话框,并进行ajax调用以加载内容:
$ ->
$( "#dialog" ).dialog({ autoOpen: false });
$( "#opener" ).click ->
$( "#dialog" ).dialog( "open" );
$( "#dialog" ).load('/content');
规格js.coffee:
describe "Open Dialog Box", ->
it "gets content from server", ->
spyOn($, "ajax")
$('#opener').click()
expect($.ajax.mostRecentCall.args[0]["url"]).toEqual("/content")
视图:
它没有得到click事件,因此似乎没有加载视图。如何加载视图进行测试
在Rails 3.2.2和Jasminerice中工作。Jasminerice允许将放入
spec/javascript/fixtures
中的任何模板视为夹具。您只需要执行loadFixture'fixtureName'
。再解释一下
我不赞成渲染与app/views
中相同的视图。如果你做得对,你只能依赖于次要的结构(类等),你可以很容易地在夹具中复制。如果需要检查实际视图是否符合这些假设,可以编写一个请求规范(遗憾的是,rspec视图规范默认匹配程序无法检查文档结构,尽管您始终可以依赖一些nokogiri fu来完成这项工作)
如果你有一些部分,你可以依靠它来提供一些方法/变量。jasmine是用于js单元测试的,如果你需要用dom测试一些小东西,即如果插件工作正常,可以使用fixture,对于rails应用程序,我建议使用capybara imo。考虑过做
rails s
并使用吗?像往常一样,Ryan Bates有一个这涉及到:
<div>
<a id="opener" href="#">See Content</a>
</div>
<div id="dialog" title="Content"></div>