2

说我们有一个对象

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 需要一个方法作为第二个参数

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

4

1 回答 1

4

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

beforeEach(function(){
  object.reopen({enable: true});
})

it('should be false when enable is true', function(){
  expect(object.get("disable")).to.be.false;
})
于 2013-12-16T17:02:35.497 回答