说我们有一个对象

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

因此,问题是在 Ember 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;
})

关于ember.js - 如何在单元测试期间 stub 计算的属性?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20616376/

10-12 13:50