我刚刚开始使用Jasmine,并在我的Rails 4项目中实现了它。
就像我做的一个简单测试一样:
//= require activities
describe('activities', function() {
it("Some div to be div", function() {
expect($('<input type="checkbox" checked="checked"/>')).toBeChecked()
});
});
这给了我错误TypeError: Object [object Object] has no method 'toBeChecked'
。所以我只能假设没有正确加载jQuery或jasmine-jquery。
文档告诉我将jasmine-jquery和jquery包含在我的yaml中。所以我这样做了:
src_files:
- assets/application.js
- jquery
- jasmine-jquery
stylesheets:
- stylesheets/**/*.css
helpers:
- helpers/**/*.js
spec_files:
- '**/*[sS]pec.js'
src_dir:
spec_dir: spec/javascripts
我可能没有正确地将jasmine-jquery和jquery加载到我的测试环境中吗?
答案 0 :(得分:0)
此对象$('<input type="checkbox" checked="checked"/>')
只是一个jQuery对象。它还没有在DOM中,所以你不能说它已被检查:)
要使其正常工作,您首先需要在dom上显示它。
var checkbox;
checkbox = $('<input type="checkbox" checked="checked"/>')
$('body').append(checkbox);
expect($("input[type='checkbox']").toBeChecked();