在Meteor中测试ReactiveVar

时间:2017-02-04 23:20:46

标签: testing meteor

我正在尝试在模板中测试一个事件。在click事件中,有一个Reactive Var被设置。

测试被Reactive Var阻止。

关于如何在模板中存根或模拟反应变量的任何想法?我尝试将它添加到模板(template.reactiveVar =“whatever”),但没有去,因为我不认为它是可写的。

??表明我想知道放什么。

it('点击按钮时设置反应变量',function(){

Template.button.fireEvent('click ', {
    context: { some: 'values'},
    event: {'target': {'text': 'randomText' } },
    templateInstance:new Template('upload', function(e) {
        this.reactiveVar = new ReactiveVar("not clicked)
    })
});

chai.assert.equal(Template.reactiveVar, "clicked")});

// The actual template is below.. 

Template.button.events{(
 'click button': function(evt, template){
   var text = evt.target.text
   template.reactiveVar.set(text)
  }
});

结果是...... TypeError:无法读取未定义

的属性'set'

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我怀疑事件实际上正在触发并在创建反应式var的回调运行之前到达事件处理程序。

首次创建独立于测试的模板时,应创建活动变量:

Template.button.onCreated(function(){
  this.reactiveVar = new ReactiveVar("not clicked");
});