我想定义一个测试帮助程序 - 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和其他全局加载的依赖项加载到测试文件的全局命名空间中。这可能吗?我也希望能够将{em>辅助函数像prepareEnv()
一样可用...在全局命名空间中,或者更理想地在辅助命名空间中。也许我可以使用类似下面的内容来实现最后一部分?
declare namespace Helpers { ... }
并将功能放入其中?
似乎无法在 ambient 上下文中实现函数,因此我应该忽略声明命名空间的想法。相反,我在test-functions.ts
文件中导入test-helper.ts
:
import * as helpers from './testing/test-functions.ts';
这可能是朝着正确方向迈出的一步,但主要问题仍然是保持test-helper.ts
文件中的环境/全局声明可用于测试文件,如test-spec.ts
;
答案 0 :(得分:1)
在这种情况下,您需要进行全局扩充:
https://www.typescriptlang.org/docs/handbook/declaration-merging.html
但总的来说,远离命名空间! :)