我刚刚开始使用Knockout JS和QUnit来完成我的淘汰视图模型的单元测试。我遇到的问题是,如果我在我的qunit测试javascript文件中有多个测试,并且链接到包含我的View Model定义的javascript文件...我在一次测试中对View Model进行的任何更改当我在测试模块中开始下一个测试时,也会出现。我习惯有一个NUnit环境,我的状态会在测试之间自动清除。
是否有人可以指向的方法,模式或示例显示定义视图模型的最佳方法,并让它重置每个单元测试开始的状态?
答案 0 :(得分: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的运行范围与setup
和tearDown
相同,因此setup
中定义的任何成员都可以在任何后续测试中访问。