小编Ric*_* II的帖子

在 Chrome 开发工具时间线中,是什么导致重新计算样式事件没有堆栈?

我在 Chromium 重绘页面时遇到了问题,我注意到在时间轴中重新计算样式的触发速度我认为非常高:

Chrome 开发工具时间轴示例

请注意,在页面打开(无论是否空闲)的整个过程中,此事件都会以此速率(每 30 秒 5000 次左右)触发。我很好奇这是否正常,但我的问题是:

是什么原因导致/触发 Chrome 时间线不显示堆栈的事件?

这个问题是相关的,但不完全是我正在寻找的答案,因为我知道重新计算样式是什么意思,我只是不知道是什么原因造成的。

google-chrome google-chrome-devtools

5
推荐指数
0
解决办法
1317
查看次数

Typescript/ES6 的 Jest 预处理器

我正在尝试使用 Jest 测试 Typescript 类。由于我需要使用 es6,async/await我需要先将 typescript类编译为 es6,然后使用 babel 编译为 es5。为了实现这一点,我需要向预处理器添加什么。我当前的预处理器如下所示:

const tsc = require('typescript');

module.exports = {
    process: function(src, path) {
        if (path.endsWith('.ts') || path.endsWith('.tsx')) {
            return tsc.transpile(
                src,
                {
                    module: tsc.ModuleKind.CommonJS,
                    jsx: tsc.JsxEmit.React
                },
                path,
                []
            );
        }
        return src;
    }
};
Run Code Online (Sandbox Code Playgroud)

我需要添加target: tsc.ScriptTarget.ES6吗?当我这样做时,我unexpected identifier =在处理的代码中得到一个错误,它看起来像我的.ts类的转译版本。我从中收集到的是,我的预处理器正在将数据编译为 es6,但我的 es6 没有被转换为 es5。还有任何现成的预处理器可以做到这一点吗?

typescript ecmascript-6 jestjs

4
推荐指数
1
解决办法
2723
查看次数

jest --coverage显示错误的路径

在此输入图像描述

像上面的知情同意,我谨目录__tests__和文件LinkButton.jsdemojest,然后运行npm test -- --coverage在终端.
测试通过,但覆盖范围错误.似乎开玩笑缓存了旧路径.
开玩笑怎么了?在线等待,非常感谢.
GitHub:https://github.com/codelegant/react-action/tree/master/public/src

reactjs test-coverage jestjs

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

jQuery自动完成可滚动下拉列表

我正在使用jQuery自动完成文本框.我的代码和脚本工作正常,但现在我需要一个'可滚动的下拉列表(沿着X轴和Y轴)而不是一个简单的下拉列表.

用于促进自动完成下拉列表的脚本:

$(function () {
    $("#TextBox").autocomplete({
        source: "home/search",
        dataType: 'json',
        minLength: 1,
        // max: 10,
        // scroll:true
    });
});
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc jquery jquery-ui jquery-autocomplete

2
推荐指数
1
解决办法
9271
查看次数

开玩笑 - 在测试前解决承诺

我想为承诺结果编写测试,并且我不想在每个it/pit部分中解决承诺。

我需要这样的东西:

describe('getData() results test', () => { 
  return getData().then(response =>  { 
    it('foo', () => expect(response.foo).toEqual(1));

    it('bar', () => expect(response.bar).toEqual(2));

    it('bar', () => expect(response.bar).toEqual(3));
  });
});
Run Code Online (Sandbox Code Playgroud)

如果使用beforeEach- 承诺将被解决与it部分数量一样多的次数。我需要解决一次,然后测试响应。有很多测试用例所以我想把所有的测试分成it几个部分

javascript testing jestjs

2
推荐指数
1
解决办法
7793
查看次数

断言针对抛出的错误对象

我有一个抛出对象的函数,如何断言正确的对象是在开玩笑呢?

it('should throw', () => {

  const errorObj = {
    myError: {
      name: 'myError',
      desc: 'myDescription'
    }
  };

  const fn = () => {
    throw errorObj;
  }

  expect(() => fn()).toThrowError(errorObj);
});
Run Code Online (Sandbox Code Playgroud)

https://repl.it/repls/FrayedViolentBoa

javascript reactjs jestjs

2
推荐指数
3
解决办法
5555
查看次数

窥探Jest模拟

我试图在jest.mock上做一个间谍,(我不喜欢你想要的东西,我更喜欢"老派"的方式)

这样我就进行了以下测试:

jest.mock('node-fetch');
// ...
it('should have called the fetch function wih the good const parameter and slug', done => {
            const slug = 'slug';
            const stubDispatch = () => null;
            const dispatcher = fetchRemote(slug);
            dispatcher(stubDispatch).then(() => {
                expect(???).toBeCalledWith(Constants + slug);
                done();
            });
        });
Run Code Online (Sandbox Code Playgroud)

这是我想要测试的代码(不完整,测试驱动):

export const fetchRemote = slug => {
    return dispatch => {
        dispatch(loading());
        return fetch(Constants.URL + slug)
    };
};
Run Code Online (Sandbox Code Playgroud)

我的fetch模拟实现(实际上是节点获取)是:

export default () => Promise.resolve({json: () => []});
Run Code Online (Sandbox Code Playgroud)

模拟效果很好,它很好地取代了通常的实现.

我的主要问题是,我怎样才能窥探那个模拟函数?我需要测试它已被调用好的参数,我绝对不知道如何做到这一点.在测试实现中有一个"???" 我不知道如何创造有关的间谍.

任何的想法 ?

javascript unit-testing reactjs jestjs

0
推荐指数
1
解决办法
4711
查看次数

开玩笑将MomentJS导入到未注入的React应用

我有一个带有MomentJS(2.20.1)+ MomentJS(0.5.14)时区的ReactJS应用。

我想为此.js文件创建单元测试:

// dateHelper.js
import * as moment from "moment";
export function someFunc() {
   // some operations with moment.utc() and moment()
}
Run Code Online (Sandbox Code Playgroud)

这是我的测试文件:

// dateHelper.test.js
const dateHelper = require("../dateHelper");

test("format date properly", () => {
    // ...
});
Run Code Online (Sandbox Code Playgroud)

但是我TypeError: moment is not a function出错了。

如何在dateHelper.js中导入momentJS以使其与Jest一起正常工作?

javascript unit-testing momentjs reactjs jestjs

0
推荐指数
1
解决办法
1210
查看次数