小编ani*_*ngh的帖子

Jest/Typescript:Jest 和 Typescript 中的模拟类依赖项

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

我的代码结构:

class A {
  getSomething() {
     return "Something";
  }
}


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

 }

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

     return returnValueFromClassA;
 }
}
Run Code Online (Sandbox Code Playgroud)

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

import ....
import { mocked } from 'jest-mock';

jest.mock("./A", () => {
    return {
        A: jest.fn().mockImplementation(() => {
            return {
                getSomething: getSomethingMock
            }
        })
    };
});

const getSomethingMock = jest.fn().mockImplementation(() => {
    return "Mock value";
});

const …
Run Code Online (Sandbox Code Playgroud)

javascript unit-testing typescript jestjs ts-jest

16
推荐指数
1
解决办法
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

ts-jest ×2

typescript ×2

unit-testing ×2