将测试助手导入全局命名空间
Importing a test helper into global namespace
我想定义一个测试助手 -- test-helper.ts
-- 它设置了全局测试文件依赖集,稍后还将添加一些实用函数。像这样:
import 'mocha';
import * as chai from 'chai';
import * as Promise from "bluebird";
import './testing/test-console'; // TS declaration
import '../src/shared/base-defs';
import { stdout, stderr } from 'test-console';
const expect = chai.expect;
function prepareEnv(env) { ... }
在测试文件 test-spec.ts
中,我想导入类似以下内容的帮助文件:
import 'test-helper';
declare('my tests', () => { ... }
并将 mocha、chai 和其他全局加载的依赖项加载到测试文件的全局命名空间中。这可能吗?我还希望能够让我的 辅助函数 像 prepareEnv()
可用...在全局命名空间中或者更理想的是在辅助命名空间中。也许我可以使用类似下面的方法来实现最后一部分?
declare namespace Helpers { ... }
然后把函数放进去?
已添加
看起来函数无法在 ambient 上下文中实现,所以我关于声明命名空间的想法应该被忽略。相反,我在 test-helper.ts
文件中导入 test-functions.ts
:
import * as helpers from './testing/test-functions.ts';
这可能是朝着正确方向迈出的一步,但主要问题仍然存在,即保持 test-helper.ts
文件中的 ambient/global 声明可用于测试 test-spec.ts
;[=21 等文件=]
在这种情况下你需要做全局增强:
https://www.typescriptlang.org/docs/handbook/declaration-merging.html
但总的来说,远离命名空间! :)
我想定义一个测试助手 -- test-helper.ts
-- 它设置了全局测试文件依赖集,稍后还将添加一些实用函数。像这样:
import 'mocha';
import * as chai from 'chai';
import * as Promise from "bluebird";
import './testing/test-console'; // TS declaration
import '../src/shared/base-defs';
import { stdout, stderr } from 'test-console';
const expect = chai.expect;
function prepareEnv(env) { ... }
在测试文件 test-spec.ts
中,我想导入类似以下内容的帮助文件:
import 'test-helper';
declare('my tests', () => { ... }
并将 mocha、chai 和其他全局加载的依赖项加载到测试文件的全局命名空间中。这可能吗?我还希望能够让我的 辅助函数 像 prepareEnv()
可用...在全局命名空间中或者更理想的是在辅助命名空间中。也许我可以使用类似下面的方法来实现最后一部分?
declare namespace Helpers { ... }
然后把函数放进去?
已添加
看起来函数无法在 ambient 上下文中实现,所以我关于声明命名空间的想法应该被忽略。相反,我在 test-helper.ts
文件中导入 test-functions.ts
:
import * as helpers from './testing/test-functions.ts';
这可能是朝着正确方向迈出的一步,但主要问题仍然存在,即保持 test-helper.ts
文件中的 ambient/global 声明可用于测试 test-spec.ts
;[=21 等文件=]
在这种情况下你需要做全局增强:
https://www.typescriptlang.org/docs/handbook/declaration-merging.html
但总的来说,远离命名空间! :)