【问题标题】:How to mock a import?如何模拟导入?
【发布时间】:2019-01-20 00:27:57
【问题描述】:

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

import {HttpSample} from "./httpService"

...

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

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

更新

我正在使用Jasminemocha 框架

【问题讨论】:

  • 您使用什么测试框架?他们应该有存根/模拟的概念吗?
  • 我正在使用茉莉和摩卡
  • 认为这应该回答你的问题:stackoverflow.com/questions/35240469/…
  • @lustoykov 这是 JavaScript 我想要一个 TypeScript 的解决方案
  • 任何在 Javascript 中工作的东西也可以在 Typescript 中工作

标签: node.js typescript


【解决方案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();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-09-30
    • 2016-05-16
    • 2015-12-14
    • 1970-01-01
    • 2019-05-17
    • 2020-05-27
    • 2020-11-29
    • 2021-01-21
    相关资源
    最近更新 更多