如何模拟导入?

时间:2018-08-13 09:47:54

标签: node.js typescript

我正在使用Node.js和Typescript进行tdd项目。我有一个名为HttpSample的类,它被导入到另一个名为Sample的类中,如下所示。

import {HttpSample} from "./httpService"

...

const http: HttpSample = new HttpSample();
http.get();

如何模拟HttpSample测试文件中的Sample类?

更新

我正在使用Jasminemocha框架

1 个答案:

答案 0 :(得分:1)

ts-mock-imports是一个库,旨在在保持类型安全的同时修复Typescript中的此问题。它建立在sinon之上而不是Jasmine之上,但是两者都可以很好地发挥作用。

sample.spec.ts

import * as httpSample from './httpService';
import { ImportMock } from 'ts-mock-imports';
import { Sample } from './sample';

const httpMock = ImportMock.mockClass(httpSample, 'HttpSample');

// Sample will now get a mock version of HttpSample
const sample = new Sample();