javascript - 在 QUnit 测试中重置 KnockoutJS ViewModel

标签 javascript unit-testing knockout.js qunit

我刚刚开始使用 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 在与 setuptearDown 相同的范围内运行,因此 setup 中定义的任何成员都将在任何后续测试中都可以访问。

关于javascript - 在 QUnit 测试中重置 KnockoutJS ViewModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8085259/

相关文章:

javascript - 使用 JQuery HTML 插入 YouTube 播放器

.net - XML 单元测试 : XmlUnit alternatives for . NET?

spring - MapStruct 映射器未在 Spring 单元测试中注入(inject)

jquery - 如何准确判断一个元素是否可滚动?

knockout.js - Knockout 似乎不喜欢 bind 中的 object.property

javascript - 使用第三方React UI库时找不到模块 'react' - Vite + Preact

javascript - jQuery:如果其值显示:无,如何仅触发当前菜单并删除样式属性?

javascript - Mongoose 架构构造函数无法识别

c# - TDD 中的命名测试与单元测试命名

javascript - 带 knockout 阵列的内联编辑