我想写一个ko.computed
字段的测试,该字段依赖于其他两个复杂的计算(在此处进行演示)。用茉莉花和淘汰赛嘲笑计算的字段
function PositionsViewModel(options) {
var self = this;
self.computed1 = ko.computed(function() { return 1; });
self.computed2 = ko.computed(function() { return 2; });
self.computedIWantToTest = ko.computed(function() {
return self.computed1() + self.computed2();
});
}
在我的茉莉花测试,我在beforeEach创建VM实例,像这样:
this.subject = new PositionsViewModel();
我希望能够存根computed1
和computed2
,这样我可以在隔离测试computedIWantToTest
。到目前为止,我的尝试都失败了。
我试过直接在vm实例上存根。但是,似乎即使这些方法以某种方式覆盖了计算缓存函数。
你是正确的,'computed'不抱到观测(包括computeds)时,第一次运行建立其依赖性跟踪的参考。您需要更改原始计算结果,而无需为其创建新的函数。 – Tyrsius 2013-03-27 18:46:34