我有一个静态网络应用。 Html,JS(requirejs模块)和一些CSS。 目前'serverUrl'是通过属性模块设置的,我可以“需要”并使用它的值:
define({
serverUrl: 'https://some.api/path/'
})
我有使用src / index.html作为入口点在浏览器中运行功能测试的Intern设置。
return this.remote
.get(require.toUrl('src/index.html'))
鉴于serverUrl
在属性文件中是硬编码的,我正在尝试找到一种方法来针对serverUrl
指向localhost:1234/someFakeServer
的网络应用运行测试,以便我可以测试错误场景等。
我已经在网上搜索了但找不到任何与我类似的人,这让我觉得我做的事情显然是错的。有NODE应用程序的解决方案,使用配置模块,但因为我从来没有“启动”我的网络应用程序 - 它只是文件,这些对我不起作用。
我曾考虑过一些解决方案,但无法弄清楚如何实现:
答案 0 :(得分:1)
假设Intern可以访问属性文件,您可以让Intern加载属性文件并从中提取服务器URL。如果您有多个潜在的属性文件,则可以在Intern配置中设置正在使用的属性文件,也可以将其作为自定义命令行变量(用于在Intern配置中设置属性)传入。测试模块可以从Intern的配置中获取属性文件的名称,然后加载相关文件。它可能看起来像这样(未经测试):
// intern config
define({
// ...
propertiesFile: 'whatever',
})
// test file
define([ 'intern', ... ], function (intern, ...) {
registerSuite({
// ...
'a test': function () {
var did = this.async();
var remote = this.remote;
require([
intern.config.propertiesFile
], dfd.callback(function (props) {
return remote.get(props.url)
.otherStuff
});
}
});
});