javascript – 在QUnit测试中重置KnockoutJS ViewModel

我刚刚开始使用Knockout JS和QUnit来完成我的淘汰视图模型的单元测试.我遇到的问题是,如果我在我的qunit测试
javascript文件中有多个测试,并且链接到包含我的View Model定义的javascript文件…我在一次测试中对View Model进行的任何更改当我在测试模块中开始下一个测试时,也会出现.我习惯有一个NUnit环境,我的状态在测试之间自动清除.

是否存在某人可以指向的方法,模式或示例,其中显示了定义视图模型的最佳方法,并将其重置为每个单元测试开始的状态?

最佳答案 您使用的是
module的第二个参数(生命周期)吗?如果没有,您应该能够在此级别实例化您的视图模型,例如:

module("foo", {
    setup: function() {
        this.model = instantiateModel();
    },
    tearDown: function() {
        // execute reset here
    });

test("bar", function() {
    ok(this.model.hasSomething() !== null, "msg");
});

根据我记得的内容,QUnit tets与setup和tearDown在相同的范围内运行,因此在任何后续测试中都可以访问setup中定义的任何成员.

点赞