小编Vij*_*wad的帖子

我怎样才能获得在jest模拟函数中调用的参数?

我怎样才能获得在jest模拟函数中调用的参数?

我想检查对象传递作为参数.

javascript jestjs

39
推荐指数
5
解决办法
2万
查看次数

开玩笑 - 简单的测试很慢

我正在使用Jest测试一个角度应用程序,它需要很长时间才能运行简单的测试,我似乎无法弄清楚原因.

我的Jest设置package.json如下:

"jest": {
  "modulePaths": [
    "<rootDir>/src",
    "<rootDir>/node_modules"
  ],
  "testPathIgnorePatterns": [
    ".git/.*",
    "node_modules/.*"
  ],
  "transformIgnorePatterns": [
    "node_modules/.*",
    ".*\\.js"
  ],
  "setupTestFrameworkScriptFile": "<rootDir>/src/setupJest.js",
  "preset": "jest-preset-angular",
  "testEnvironment": "jsdom",
  "testRegex": "src/app/.*\\.spec\\.ts$",
  "moduleFileExtensions": [
    "ts",
    "js",
    "json"
  ],
  "verbose": true,
  "cacheDirectory": ".jest-cache",
  "coveragePathIgnorePatterns": [
    ".*\\.(shim\\.ngstyle|ngfactory)\\.ts"
  ],
  "globals": {
    "ts-jest": {
      "tsConfigFile": "./tsconfig.json"
    },
    "__TRANSFORM_HTML__": true
  }
}
Run Code Online (Sandbox Code Playgroud)

我的Jest安装文件:

'use strict';
require('core-js/es6/reflect');
require('core-js/es7/reflect');
require('zone.js');
require('zone.js/dist/proxy.js');
require('zone.js/dist/sync-test');
require('zone.js/dist/async-test');
require('zone.js/dist/fake-async-test');
require('jest-zone-patch');

const getTestBed = require('@angular/core/testing').getTestBed;
const BrowserDynamicTestingModule = require('@angular/platform-browser-dynamic/testing').BrowserDynamicTestingModule;
const platformBrowserDynamicTesting = require('@angular/platform-browser-dynamic/testing')  .platformBrowserDynamicTesting;

getTestBed().initTestEnvironment(
    BrowserDynamicTestingModule, …
Run Code Online (Sandbox Code Playgroud)

javascript typescript jestjs angular

37
推荐指数
6
解决办法
4183
查看次数

选择在反应材料 ui 中单击图标组件(下拉箭头)不起作用

下面是我的代码片段。我遇到了一个问题,当我点击 IconComponent( dropdown-arrow ) 时,选择组件没有打开。

<Select
  IconComponent={() => (
    <ExpandMore className="dropdown-arrow" />
  )}
  onChange={this.handleSelectUpdate.bind(this)}
  value={this.state.somestate}
  inputProps={{
    name: "someprops1",
    id: "someprops1"
  }}
  disabled={this.props.someprops1.length === 1}
  className="dropdown"
>
  >
  {_.map(this.props.someprops2, (item, id) => {
    return (
      <MenuItem value={item.somekey} key={id}>
        {item.somekey}
      </MenuItem>
    );
  })}
</Select>

Run Code Online (Sandbox Code Playgroud)

javascript reactjs material-ui

8
推荐指数
1
解决办法
5586
查看次数

Jest-如何在babel-jest中使用根斜杠导入?

我正在使用Babel Jest转换我的代码以进行测试。我不知道如何使用相对于项目根目录的路径。

例如,如果我在测试文件中导入以下模块:/imports/ui/myModuleJest抛出错误

Cannot find module 
'/Users/me/dev/myProject/Users/me/dev/myProject/imports/ui/myModule' from 'test.jsx'`
Run Code Online (Sandbox Code Playgroud)

但是,如果我导入一个具有相对路径的模块,例如:../../ui/myModule它起作用。

我的.babelrc

{
  "plugins": [
    "transform-decorators-legacy",
    "transform-class-properties",
    "babel-root-slash-import"
  ],
  "presets": [
    "es2015",
    "react",
    "stage-0"
  ],
  "env": {
    "test": {
      "plugins": [
        "transform-decorators-legacy",
        "transform-class-properties",
        "babel-root-slash-import"
      ],
      "presets": [
        "es2015",
        "react",
        "stage-0"
      ]
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

我的笑话配置是:

  "jest": {
    "roots": ["<rootDir>/imports/tests/jest"]
  },
Run Code Online (Sandbox Code Playgroud)

jestjs babeljs babel-jest es6-modules

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

开玩笑:如何模拟监听事件的依赖项?

我遇到了一个非常复杂的情况。我会尽量保持简洁。

所以我在myModule.js 中有这样的代码:

const lib = require('@third-party/lib');

const myFunction = () => {
  const client = lib.createClient('foo');
  return new Promise((resolve, reject) => {
    client.on('error', (err) => reject(err));
    client.on('success', () => {
      client.as(param1).post(param2, param3, (err, data) => {
        if (err) reject(err);

        // Some important logical processing of data
        resolve(data);
      });
    });
  });
}

module.exports = { myFunction };
Run Code Online (Sandbox Code Playgroud)

有几件事情我可以嘲笑,如:createClient。我无法嘲笑的是我什至不知道如何做到这一点的事件部分还有那.as().post()部分。

这是我的笑话测试的样子:

const myModule = require('./myModule');
const mockData = require('./mockData'); …
Run Code Online (Sandbox Code Playgroud)

javascript node.js ecmascript-6 es6-promise jestjs

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