小编oop*_*nou的帖子

用Java的Jest模拟整个模块

我搜索了很长时间,以开玩笑地模拟任何模块(就像rewire一样)。我终于设法做到了,它就像一个魅力:

jest.mock('common/js/browser-utils', () => ({
    openBrowser: jest.fn()
}));
const { openBrowser: openBrowserSpy } = jest.requireMock(
    'common/js/browser-utils'
);
Run Code Online (Sandbox Code Playgroud)

但是我想知道是否还有另一种快速的方法?我看到了该genMockFromModule方法,但是我从未使它起作用(也许不是这种用法。)

我要的是简单的:嘲讽由一个模块jest.fn()(或任何自动机制),然后能够访问此jest.fn()在我的测试中(此处openBrowserSpy),以expect(assertions)在其上

javascript jestjs

6
推荐指数
1
解决办法
701
查看次数

typescript - 在路径中包含类型,但不编译它们

我在打字稿中遇到了问题。我有以下层次结构:

.
+-- @types
|   +-- declaration1.ts
|   +-- declaration2.ts
+-- common
|   +-- utils1.ts
|   +-- utils2.ts
+-- tests
|   +-- utils1.test.ts
|   +-- utils2.test.ts
Run Code Online (Sandbox Code Playgroud)

在我的 tsconfig.json 中,我将此配置放在测试和公共资源中公开我的所有类型(或 vscode 抱怨):

{
  "compilerOptions": {
    "outDir": "build/",
  },
  "include": ["tests", "common", "@types"]
}

Run Code Online (Sandbox Code Playgroud)

我的问题是,我不想编译所有这些东西,我只想编译公共资源(它们是实用程序,我无法获得单个(甚至多个)入口点)。

所以我想输入tsc并获取一个build文件夹填充,如下所示:

.
+-- build
|   +-- common
|   |   +-- utils1.js
|   |   +-- utils2.js
// nothing else
Run Code Online (Sandbox Code Playgroud)

相反,我得到了这个:

.
+-- build
|   +-- @types
|   |   +-- declaration1.js
|   |   +-- declaration2.js …
Run Code Online (Sandbox Code Playgroud)

typescript typescript-typings

5
推荐指数
1
解决办法
3008
查看次数