将测试助手导入全局命名空间

时间:2017-06-23 21:59:05

标签: typescript mocha typescript2.0

我想定义一个测试帮助程序 - 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;

1 个答案:

答案 0 :(得分:1)

在这种情况下,您需要进行全局扩充:

https://www.typescriptlang.org/docs/handbook/declaration-merging.html

但总的来说,远离命名空间! :)