相关疑难解决方法(0)

用打字稿模拟对jest的依赖

测试在不同文件中具有依赖关系的模块时.将该模块指定jest.MockmockReturnThisOncetypescript时会给出一个错误,即该依赖项上不存在该方法(或任何其他jest.Mock方法),这是因为它以前是键入的.从jest.Mock获取typescript继承类型的正确方法是什么?

这是一个简单的例子.

依赖

const myDep = (name: string) => name;
export default myDep;
Run Code Online (Sandbox Code Playgroud)

test.ts

import * as dep from '../depenendency';
jest.mock('../dependency');

it('should do what I need', () => {
  //this throws ts error
  // Property mockReturnValueOnce does not exist on type (name: string)....
  dep.default.mockReturnValueOnce('return')
}
Run Code Online (Sandbox Code Playgroud)

我觉得这是一个非常常见的用例,不知道如何正确输入.任何帮助将非常感激!

javascript unit-testing typescript jestjs

34
推荐指数
10
解决办法
2万
查看次数

Jest/Typescript:在 jest 和 Typescript 中包含私有成员的模拟类依赖项

上下文:我有依赖于类 A 的类 B。我想测试类 B 的方法,该方法在内部调用类 A 的方法。现在,我想通过模拟类 A 对类 B 的方法进行单元测试。

注1A类有一些私有成员

注2A类没有接口

这是我的代码结构:


class Base {

  someMethod() {
     return "Hello ";
  }

}


class A {

  private _baseClassImpl: Base;

  constructor(baseClassImpl: Base) {
     this._baseClassImpl = baseClassImpl;
  }

  getSomething() {     
     return this._baseClassImpl.someMethod() + " Something";
  }
}


class B {
  constructor(objectOfClassA: A) {
      this._objectOfClassA = objectOfClassA;

 }

 functionOfClassBToTest() {
     const returnValueFromClassA = this._objectOfClassA.getSomething();

     return returnValueFromClassA;
 }
}

Run Code Online (Sandbox Code Playgroud)

到目前为止我已经尝试过:

在采纳了我之前的 SO 帖子的建议后,我尝试编写这样的测试:


const getSomethingMock = jest.fn().mockImplementation(() …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing typescript jestjs ts-jest

3
推荐指数
1
解决办法
3559
查看次数

标签 统计

javascript ×2

jestjs ×2

typescript ×2

unit-testing ×2

ts-jest ×1