我刚刚开始使用 Knockout JS 和 QUnit 对我的 Knockout View 模型进行单元测试。我遇到的问题是,如果我在我的 qunit 测试 javascript 文件中有多个测试,并且我链接到一个包含我的 View 模型定义的 javascript 文件......我在一个测试中对 View 模型所做的任何更改当我在测试模块中开始下一个测试时也存在。我曾经有一个 NUnit 环境,我的状态在测试之间自动清除。
是否有人可以指出一种方法、模式或示例来展示定义 View 模型的最佳方式,并让它在每个单元测试开始时重置其状态?
最佳答案
您使用的是 module
的第二个参数(生命周期)吗? ?如果没有,您应该能够在此级别实例化您的 View 模型,例如:
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
中定义的任何成员都将在任何后续测试中都可以访问。
关于javascript - 在 QUnit 测试中重置 KnockoutJS ViewModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8085259/