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

请注意,在页面打开(无论是否空闲)的整个过程中,此事件都会以此速率(每 30 秒 5000 次左右)触发。我很好奇这是否正常,但我的问题是:
是什么原因导致/触发 Chrome 时间线不显示堆栈的事件?
这个问题是相关的,但不完全是我正在寻找的答案,因为我知道重新计算样式是什么意思,我只是不知道是什么原因造成的。
我正在尝试使用 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。还有任何现成的预处理器可以做到这一点吗?
像上面的知情同意,我谨目录__tests__和文件LinkButton.js从demo到jest,然后运行npm test -- --coverage在终端.
测试通过,但覆盖范围错误.似乎开玩笑缓存了旧路径.
开玩笑怎么了?在线等待,非常感谢.
GitHub:https://github.com/codelegant/react-action/tree/master/public/src
我正在使用jQuery自动完成文本框.我的代码和脚本工作正常,但现在我需要一个'可滚动的下拉列表(沿着X轴和Y轴)而不是一个简单的下拉列表.
用于促进自动完成下拉列表的脚本:
$(function () {
$("#TextBox").autocomplete({
source: "home/search",
dataType: 'json',
minLength: 1,
// max: 10,
// scroll:true
});
});
Run Code Online (Sandbox Code Playgroud) 我想为承诺结果编写测试,并且我不想在每个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几个部分
我有一个抛出对象的函数,如何断言正确的对象是在开玩笑呢?
it('should throw', () => {
const errorObj = {
myError: {
name: 'myError',
desc: 'myDescription'
}
};
const fn = () => {
throw errorObj;
}
expect(() => fn()).toThrowError(errorObj);
});
Run Code Online (Sandbox Code Playgroud)
我试图在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)
模拟效果很好,它很好地取代了通常的实现.
我的主要问题是,我怎样才能窥探那个模拟函数?我需要测试它已被调用好的参数,我绝对不知道如何做到这一点.在测试实现中有一个"???" 我不知道如何创造有关的间谍.
任何的想法 ?
我有一个带有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一起正常工作?
jestjs ×6
javascript ×4
reactjs ×4
unit-testing ×2
asp.net-mvc ×1
ecmascript-6 ×1
jquery ×1
jquery-ui ×1
momentjs ×1
testing ×1
typescript ×1