Unit testing 淘汰-单元测试计算的可观测值
在knockout中,我想使用jasmine对依赖于另一个可观测值的计算可观测值进行单元测试 但是,它不起作用,因为当我更改另一个可观察对象时,计算的可观察对象的值不会更新 以下是我的(简化)视图模型:Unit testing 淘汰-单元测试计算的可观测值,unit-testing,knockout.js,jasmine,Unit Testing,Knockout.js,Jasmine,在knockout中,我想使用jasmine对依赖于另一个可观测值的计算可观测值进行单元测试 但是,它不起作用,因为当我更改另一个可观察对象时,计算的可观察对象的值不会更新 以下是我的(简化)视图模型: function MarkersViewModel() { var self = this; self.name = ko.observable("chad"); self.computedName = ko.computed(function() {
function MarkersViewModel() {
var self = this;
self.name = ko.observable("chad");
self.computedName = ko.computed(function() {
return self.name();
});
这是我的茉莉花规格:
describe("string", function() {
var view_model = new MarkersViewModel();
view_model.name = ko.observable("joe");
it("returns the whole array when there is no filter", function() {
expect(view_model.computedName()).toBe("joe");
});
});
当我运行这个时,jasmine失败了:
Expected 'chad' to be 'joe'.
你知道我该怎么做吗
谢谢您不应该重新创建可观察的,只需设置值:
describe("string", function() {
var view_model = new MarkersViewModel();
view_model.name("joe"); // <- here
it("returns the whole array when there is no filter", function() {
expect(view_model.computedName()).toBe("joe");
});
});
描述(“字符串”,函数(){
var view_model=新MarkersViewModel();
view_model.name(“joe”);//您不应重新创建可观察的,只需设置值:
describe("string", function() {
var view_model = new MarkersViewModel();
view_model.name("joe"); // <- here
it("returns the whole array when there is no filter", function() {
expect(view_model.computedName()).toBe("joe");
});
});
描述(“字符串”,函数(){
var view_model=新MarkersViewModel();
view_model.name(“joe”);//它可能对使用QUnit的同一解决方案有用:
test(" Test view_model.name ", function () {
var view_model = new MarkersViewModel();
view_model.name("joe");
equal(view_model.computedName(), "joe");
});
对于使用QUnit的相同解决方案可能有用:
test(" Test view_model.name ", function () {
var view_model = new MarkersViewModel();
view_model.name("joe");
equal(view_model.computedName(), "joe");
});
我不理解您在代码下面的评论,但它是有效的。谢谢!我不理解您在代码下面的评论,但它是有效的。谢谢!