我正在使用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'屬性的代碼。所以導致問題的代碼不存在問題,並且渲染函數的內容也不存在問題...因此,我們無法找到沒有看到代碼的問題...... –