如何在单元测试期间存根计算的属性



说我们有一个对象

var myObject = Ember.Object.create({
  enable: function(){
    //a method which has a lot of calculations and returns a boolean
  }.property("someDependency"),
  disable: Ember.computed.not("enable")
})

我单独测试了属性enable,现在我想单独测试属性disable&我只想存根enable,这样我的测试用例就简单了。

我试过

myObject.set("enable", true)

但这是不对的,因为我们需要定义一个setter(不是所有计算属性的情况)

sinon.stub(myObject, "enable")

也失败了,因为Ember.computed返回object,但sinon需要一个方法作为第二个参数

那么,问题是,在0.9.8中,stub计算属性的正确方法是什么?

我找到了一种方法来做到这一点(但并不完全是存根),只是想知道每个人对这个的看法

beforeEach(function(){
  object.reopen({enable: true});
})
it('should be false when enable is true', function(){
  expect(object.get("disable")).to.be.false;
})

最新更新