我正在使用Jasmine进行单元测试以测试与Backbone.js的应用程序(这是我第一次与他们合作,所以我有点儿有点自命不凡:/) 这是我的看法骨干stView.el未定义测试与茉莉花骨干视图
define(['jquery','backbone','underscore','handelbars','models/story','text!templates/story.html',
\t \t 'controllers/storyController'],
function($, Backbone, _,handelbars, story,storyTemplate,ctrl){
\t var View = Backbone.View.extend({
\t \t el: '#main',
\t \t events:{
\t \t \t 'click .close-story' : 'closeStory',
\t \t }
// Some functions
\t });
\t return View;
});
和茉莉花
define(['views/storyView'],function (storyView) {
describe("Testing the Story View ",function() {
var stView;
beforeEach(function(){
stView=new storyView({id:1});
stView.render();
})
it("Test if el is defined and trigger the click ",function() {
expect(stView.el).toBeDefined();
})
})
})
谢谢:)
你得到的错误究竟是什么?如title所述,没有与myView.render()。el'匹配的代码。为什么你在'expect(stView。$ el.find('。addbtn'))。toBeDefined();''之前点击test中的按钮。为什么在共享代码中需要'var self = this;'?你为什么使用'$(self.el)'而不是'self。$ el'? 总之,请清理你的代码,发布适当的错误,如果可能的话创建一个[mcve] –
@TJ谢谢你的回答,我很抱歉我不够清楚,我编辑了我的问题和代码,我希望它是现在可读。 PS:我不是那种对视图进行编码的人,我只是在用茉莉花进行测试。非常感谢您的帮助:) –
如您在标题error:'myView.render()。el'中提到的那样,仍然没有共享试图访问'render'方法的'el'属性的代码。所以导致问题的代码不存在问题,并且渲染函数的内容也不存在问题...因此,我们无法找到没有看到代码的问题...... –