- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个分析跟踪器,它只会在 1 秒后调用一个对象,其中 intervalInMilliseconds
(持续时间)值为 不是 确定性的。
我如何使用 jest.toHaveBeenCalledWith
测试对象?
test('pageStats - publicationPage (will wait 1000ms)', done => {
const track = jest.fn()
const expected = new PayloadTiming({
category: 'PublicationPage',
action: 'PublicationPage',
name: 'n/a',
label: '7',
intervalInMilliseconds: 1000 // or around
})
mockInstance.viewState.layoutMode = PSPDFKit.LayoutMode.SINGLE
const sendPageStats = pageStats({
instance: mockInstance,
track,
remoteId: nappConfig.remoteId
})
mockInstance.addEventListener('viewState.currentPageIndex.change', sendPageStats)
setTimeout(() => {
mockInstance.fire('viewState.currentPageIndex.change', 2)
expect(track).toHaveBeenCalled()
expect(track).toHaveBeenCalledWith(expected)
done()
}, 1000)
expect(track).not.toHaveBeenCalled()
})
expect(track).toHaveBeenCalledWith(expected)
失败:
Expected mock function to have been called with:
{"action": "PublicationPage", "category": "PublicationPage", "intervalInMilliseconds": 1000, "label": "7", "name": "n/a"}
as argument 1, but it was called with
{"action": "PublicationPage", "category": "PublicationPage", "intervalInMilliseconds": 1001, "label": "7", "name": "n/a"}
最佳答案
这可以通过非对称匹配器来完成(在 Jest 18 中引入)
expect(track).toHaveBeenCalledWith(
expect.objectContaining({
"action": "PublicationPage",
"category": "PublicationPage",
"label": "7",
"name": "n/a"
})
)
jest-extended
你可以做类似的事情
expect(track).toHaveBeenCalledWith(
expect.objectContaining({
"action": "PublicationPage",
"category": "PublicationPage",
"label": "7",
"name": "n/a",
"intervalInMilliseconds": expect.toBeWithin(999, 1002)
})
)
关于jestjs - 松散匹配 jest.toHaveBeenCalledWith 中的一个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52337116/
有没有办法用 Jestjs 编写更多数据驱动的测试? 我想出了这样的东西: it('assignments and declarations', () => { testCases.f
我想知道如何为 package.json 中的所有 JestJS 测试设置全局超时? 默认的 5000 毫秒对于我的测试来说是不够的。我不想为我的每个测试执行以下代码: it('should retu
我们正在使用 Jest/Enzyme 进行我们的 React 集成测试。我们有一个组件在等待 iframe 加载时显示微调器。当此页面在真实世界的浏览器环境中加载时,微调器会明显显示。但是,在测试 中
Jest 不提供我的手动模拟。一切似乎都在正确的目录中。我错过了什么? src/adapters/__mocks__/Foo.js const spy = jest.genMockFromModule
我对 Jest 有点陌生,所以如果这是一个明显的答案,请原谅我,但在滚动浏览文档后我找不到答案。 我有一个函数 (funcA),它将一个不同长度的数组传递给另一个函数 (funcB),具体取决于 fu
我正在GitLab CI中进行代码覆盖率的玩笑测试,并且GitLab从gitlab中的运行程序的标准输出中捕获了百分比。 jest --coverage在stdout中产生覆盖率,而gitlab使用/
我正在使用Jest运行Selenium测试。我希望登录测试在其余的Webapp功能测试之前进行。我可以使用jest -i依次运行文件,但找不到控制文件运行顺序的方法。我尝试更改文件名,希望它按文件名的
这个和这个不一样enzyme-to-snapshot-render-object-as-json因为 这里我想生成对象的带有JSON定义的快照 另一个我想为组件生成的 only for HTML 生成
我编写了一个脚本,其主要目的是向某些表格的单元格添加新元素。 测试是通过类似这样的方式完成的: document.body.innerHTML = `
我看到有两个配置选项可以在每次测试之前运行一些代码:setupFiles和setupFilesAfterEnv。在我看来,setupFilesAfterEnv提供了更大的灵活性(我可以使用jest,b
我已经找到了一些特定于版本的questions on SO,用于 Jest 单元测试,并将其结果发布在VSTS构建测试结果标签中。但是找不到适当的解决方案。 最佳答案 经过一些研究,我发现Jest t
我想在Jest测试代码中摆脱全局变量。具体来说describe,it和expect: describe('Welcome (Snapshot)', () => { it('Welcome rend
我想测试一个非常简单的JS函数 export function displaySpinner() { const loadingOverlayDOM = document.createElem
该项目具有客户端应用程序和服务器站点代码,一旦项目在本地构建,它将把所有构建的前端和后端 Assets 放入 build目录,它包含客户端需要使用的所有静态 Assets (所有测试用例也包括在那里)
我了解Jest是用于JavaScript的开发人员的单元测试工具。 Jest是类似于Selenium的基于浏览器的测试工具还是功能测试工具? 最佳答案 该npm库可以与您的jest测试集成在一起,以在
我发现“笑话快照摘要”有点令人困惑。在我们的一个存储库中运行测试后,我得到以下摘要: Snapshot Summary › 2 snapshots written in 1 test suite.
我对 Jest 用于运行测试的顺序有一些疑问。 假设我有两个测试: module1.spec.ts module2.spec.ts 这些模块中的每一个都使用一个公共(public)数据库。在每个文件的
我想为我的代码库中的所有文件运行覆盖率报告,包括那些目前没有任何测试的文件。 我正在使用这个命令: jest --coverage --collectCoverageFrom='src/feature
我想在 jest 中断言数组包含具有某些属性的对象,例如: [ { id: 1, name: 'A' }, { id: 2, name: 'B' }, { id: 3 }
我正在开发一个文本生成器,我想将生成的字符串与存储在示例文件中的文本进行比较。文件某些行有缩进,在 TS/js 中构造这些字符串非常麻烦 是否有一种简单的方法可以从相对于当前测试甚至 Jest 项目根
我是一名优秀的程序员,十分优秀!