4

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

是否有人可以指出一种方法、模式或示例来显示定义视图模型的最佳方式,并让它在每个单元测试开始时重置其状态?

4

1 回答 1

2

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

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

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

从我记得读过的内容来看,QUnit tets 与 and 在相同的范围内运行setup,因此在任何后续测试中都可以访问其中tearDown定义的任何成员。setup

于 2011-11-10T19:41:39.400 回答