简体   繁体   English

带有 Jest 的路径解析方法 mocking

[英]path resolve method mocking with Jest

I want to mock the resolve method that is part of the "path" module.我想模拟作为“路径”模块一部分的解析方法。 I am using it in a method and i want to mock the response of path.resolve(filepath) so i can write some unitTests based on that.我在一个方法中使用它,我想模拟path.resolve(filepath)的响应,所以我可以基于它编写一些单元测试。

You can jest.spyOn(object, methodName) to mock path.resolve method.您可以jest.spyOn(object, methodName)来模拟path.resolve方法。

Eg main.ts :例如main.ts

import path from 'path';

export function main(filepath) {
  return path.resolve(filepath);
}

main.test.ts : main.test.ts

import { main } from './main';
import path from 'path';

describe('61419093', () => {
  it('should pass', () => {
    const resolveSpy = jest.spyOn(path, 'resolve').mockReturnValueOnce('/fakepath');
    const actual = main('/root/avatar.jpg');
    expect(actual).toBe('/fakepath');
    expect(resolveSpy).toBeCalledWith('/root/avatar.jpg');
    resolveSpy.mockRestore();
  });
});

unit test results with 100% coverage: 100% 覆盖率的单元测试结果:

 PASS  stackoverflow/61419093/main.test.ts (12.631s)
  61419093
    ✓ should pass (4ms)

----------|---------|----------|---------|---------|-------------------
File      | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
----------|---------|----------|---------|---------|-------------------
All files |     100 |      100 |     100 |     100 |                   
 main.ts  |     100 |      100 |     100 |     100 |                   
----------|---------|----------|---------|---------|-------------------
Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        14.426s

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM