Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 如何在Jasmine中加载Rails视图进行测试?_Jquery_Ruby On Rails_Coffeescript_Jasmine_Jasmine Jquery - Fatal编程技术网

Jquery 如何在Jasmine中加载Rails视图进行测试?

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

下面的代码在浏览器中工作,但是如何用Jasmine测试它呢?单击
#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>