如何使用 doh 测试非 dojo javascript 代码?

Posted

技术标签:

【中文标题】如何使用 doh 测试非 dojo javascript 代码?【英文标题】:How to test non-dojo javascript code with doh? 【发布时间】:2010-02-02 10:22:26 【问题描述】:

doh 是 dojo 单元测试框架。 我正在尝试使用 doh 来测试非 dojo javascript 代码,但我面临的问题是 doh 似乎具有侵入性,并迫使我在测试的 js 文件中使用 dojo.provide() (以及相应的 dojo.require() 在测试js文件)。 我希望经过测试的 js 文件未经修改且与 dojo 无关。 有可能吗?

【问题讨论】:

【参考方案1】:

我找到了解决办法。

simple/MyModule.js simple/tests/MyModuleTest.js

在测试文件中,只需使用:

dojo.provide("simple.tests.MyModuleTest");

dojo.require("doh.runner");

dojo.require("simple.MyModule",true);

因为 js 文件是在没有 dojo.provide() 模块检查的情况下通过其名称找到的

http://api.dojotoolkit.org/jsdoc/1.2/dojo.require

【讨论】:

这似乎包含该文件,但将其注册为“非模块”。任何在文件中调用函数的尝试都会导致“函数未定义”。您是如何调用要测试的 javascript 函数的?【参考方案2】:

我认为 DOH 确实(仅)依赖于 Dojo 加载程序。您是否尝试过定义通常在 dojo.provide 中的对象?你可能会侥幸逃脱。而不是做

dojo.provide("mytests.mymodule")

试试

mytests.mymodule=;

【讨论】:

【参考方案3】:

您需要检查此alternative of dojo DOH。是 SitePen 开发的 Dojo Foundation Project。

【讨论】:

以上是关于如何使用 doh 测试非 dojo javascript 代码?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Travis CI 上设置 Dojo Doh 单元测试?

如何在 Dojo DOH 测试中运行服务器 url

Dojo 和 doh:测试特定主题订阅

类似于 dojo DOH 的 Javascript 测试框架

Dojo DOH 怎么了?

使用 node.js 在命令行上运行 DOH