茉莉/主干



我的Jasmine测试过去是通过的。但是,我实现了一个为一些常见视图提供功能的Base Backbone视图。在这之后,我无法通过下面的简单测试。似乎DOM元素(div)不存在,因此我的显示视图没有正确呈现。对于为什么会出现这种情况以及如何解决它,有什么想法或建议吗?

两个骨干视图,一个扩展到另一个:

var stockShowView = Base.extend({
  tagName: 'div',
  className: 'showSecurity',
  template: _.template(showTpl),
  ....
  render: function() {
    this.$el.html(this.template({
      stock: this.model.toJSON()
    }));
  }
  ....return stockShowView;
var Base = Backbone.View.extend({
  initialize: function() {....//no render function

茉莉花测试

  stock_showView = new stockShowView({model: model});
  stock_showView.render();
  expect(stock_showView.tagName).toEqual('div');
误差

 Cannot read property 'length' of undefined
路由器

  router.on('route:showPost', function(id) {
    if (globals.stocks) {
      var stockpost = new StockModel({_id: id});
        stockpost.fetch({
          reset: true,
          success: function(stockpost) {
            var stock_showView = new stockShowView({model: stockpost});
            $("#view_box").html(stock_showView.render().el);
          }
      });

tagName元素应该用大写字母书写。试试这个:

expect(stock_showView.el.nodeName).toEqual("DIV");

相关内容

  • 没有找到相关文章

最新更新