gpt4 book ai didi

javascript - 如何使用 Jasmine/Chutzpah/JsTestDriver 对 JavaScript 即时函数进行单元测试

转载 作者:行者123 更新时间:2023-11-30 18:30:09 25 4
gpt4 key购买 nike

我们在文件“mediator.js”中有一个即时函数,它将一个“中介”对象添加到全局命名空间。这个“中介者”是我们拥有的唯一全局对象。

现在我们对“中介”对象进行了许多不同的单元测试。我们希望每个测试都独立运行 - 换句话说,每个测试都需要通过调用立即函数来创建一个新的干净中介对象。

测试是用 Jasmine 编写的,我们使用 Chutzpah 和 JsTestDriver 运行它们。

那我该怎么做呢?

  • 在 Chutzpah 中,我可以将每个单独的测试放入它自己的 js 文件中,并在每个测试文件中引用 mediator.js
  • 使用 JsTestDriver,每个测试都需要一个配置文件,其中包括 mediator.js 和测试文件

我们也在考虑放弃立即模式,有一个构造函数来创建一个Mediator对象。这将是一种耻辱,因为在生产代码中我们只需要创建一次中介,并且不想让构造函数徘徊污染全局命名空间。

当然,其他人在测试即时/自调用/自执行功能时也遇到过这个问题。那么什么是“最佳实践”?

最佳答案

我认为公开中介构造函数并让每个测试覆盖现有的全局成员可能是最好的选择。公开一个对象构造函数将是一个大问题。听起来变通方法比仅公开方法要费力得多。

类似于:

// mediator.js

function createMediator(){ ... }

window.mediator = createMediator();



// In unit test

beforeEach(function () {
window.mediator = createMediator();
});

关于javascript - 如何使用 Jasmine/Chutzpah/JsTestDriver 对 JavaScript 即时函数进行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9885845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com