gpt4 book ai didi

jquery - 如何加载 Rails View 以在 Jasmine 中进行测试?

转载 作者:行者123 更新时间:2023-12-01 00:57:23 30 4
gpt4 key购买 nike

下面的代码可以在浏览器中运行,但是如何用 Jasmine 来测试它呢?单击#opener后,它应该显示一个 jQuery 对话框并进行 ajax 调用来加载内容:

$ ->
$( "#dialog" ).dialog({ autoOpen: false });
$( "#opener" ).click ->
$( "#dialog" ).dialog( "open" );
$( "#dialog" ).load('/content');

spec.js.咖啡:

describe "Open Dialog Box", ->
it "gets content from server", ->
spyOn($, "ajax")
$('#opener').click()
expect($.ajax.mostRecentCall.args[0]["url"]).toEqual("/content")

查看:

<div>
<a id="opener" href="#">See Content</a>
</div>

<div id="dialog" title="Content"></div>

它没有获取点击事件,所以看起来 View 没有被加载。如何加载 View 进行测试?

使用 Rails 3.2.2 和 Jasminerice。

最佳答案

Jasminerice 允许将任何放入 spec/javascript/fixtures 中的模板视为固定装置。您只需要执行loadFixture 'fixtureName'Fixture documentation for Jasminerice解释更多一点。

我不会渲染与 app/views 中相同的 View 。如果你做得正确,你只依赖于可以在固定装置中轻松复制的次要结构(类等)。如果您需要检查您的实际 View 是否符合这些假设,您可以编写一个请求规范(遗憾的是,rspec View 规范默认匹配器无法检查文档结构,尽管您始终可以依靠一些 nokogiri-fu 来做到这一点。

如果您有一些部分内容,您可以依靠 Jasminerice::HelperMethods提供一些方法/变量。

关于jquery - 如何加载 Rails View 以在 Jasmine 中进行测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13330772/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com