Sinon是JavaScript的模拟框架,可以创建间谍,存根和模拟。
用 quibble 模拟和测试这样的 esm 方法是否可行?如果没有,我们还有其他库吗? sinon 很好,但是 es 模块不能用 sinon 进行存根。我发现
在node.js ESM中我想存根一个导出的模块,这是默认的
我有一个非常简单的身份验证中间件,带有导出默认()匿名函数: 导出默认()=> async(req,res,next)=> { 尝试 { // 一些身份验证实现...并不重要...
我正在尝试按照此处的指南来测试发出的事件。 给定以下 Vue SFC: 我正在尝试按照指南此处来测试发出的事件。 鉴于以下 Vue SFC: <script setup> </script> <template> <button data-testid="credits" @click="$emit('onCredits')">Click</button> </template> 以及以下 Cypress 测试: import { createTestingPinia } from '@pinia/testing'; import Button from './Button.vue'; describe('<Button />', () => { it('renders', () => { const pinia = createTestingPinia({ createSpy: cy.spy(), }); cy.mount(Button, { props: { onCredits: cy.spy().as('onCreditsSpy'), }, global: { plugins: [pinia], }, }); cy.get('[data-testid=credits]').click(); cy.get('@onCreditsSpy').should('have.been.called'); }); }); 我的测试失败了 预计 onCreditsSpy 至少被调用一次,但它从未被调用过 将间谍作为道具传递感觉很奇怪,我是否误解了什么? 我用Using Vue Test Utils中的最后一个示例解决了这种情况。 在我的例子中,除了单击页面后发出的“handleClick”事件外,PagerElement 组件还使用属性“pages”表示要呈现的页面总数,使用“page”属性表示当前页面: cy.mount(PagerElement, { props: { pages: 5, page: 0 } }).get('@vue') 在测试中,我单击第三个链接,然后发出事件: cy.get('.pages router-link:nth-of-type(3)').click() cy.get('@vue').should(wrapper => { expect(wrapper.emitted('handleClick')).to.have.length expect(wrapper.emitted('handleClick')[0][0]).to.equal('3') }) 第一个期望是完全发出handleClick,第二个期望然后检查发出的参数(在我的例子中是单击元素的页面) 为了让 Wrapper 元素返回,必须添加自定义安装命令,而不是 component.ts/component.js 中的默认命令: Cypress.Commands.add('mount', (...args) => { return mount(...args).then(({ wrapper }) => { return cy.wrap(wrapper).as('vue') }) }) OP也在cypress github上提出了这个问题,但没有提及解决方案。正如这里提到的: Vue 对于“on”前缀有一些特殊的规则。该事件是 发出的通常是“eventName”并且为此注册的道具 事件将是“onEventName”。在你的例子中,你会发出 credits,处理程序将是 onCredits。如果您更新 SFC 发出credits我认为它应该有效
window.location.assign() 未在 Jest JSDom 中实现
我有这个功能 窗口.位置.分配(url) jsdom 中不存在...所以在我的测试中引发错误 有人提到了存根这个函数的可能性(使用Sinon) 看到 jsdom 我...
我正在尝试测试我的路线,但我无法存根我的存储库函数,我想存根存储库中调用数据库的函数。 这是我的测试文件 从“cha...
如何让 cy.stub() 在 React 组件测试中用于导入?
我正在尝试存根 React hook。被测代码的简化视图如下: // 组件.tsx 从'react-router-dom'导入{useNavigate}; 导出默认函数 Component() { 常量
我是编写摩卡单元测试的新手,想询问以下代码的单元测试是什么样的(特别是对于 BigQuery 部分)。该代码位于 PubSub 触发的 Cloud Functi 中...
我想测试一个用Typescript编写的Google Cloud Function,该函数调用Topic类的成员函数publishMessage。我怎样才能让单元测试捕获得到 p 的参数...
我要测试的数据库类 我有一个 DB 类,其中封装了要测试的 Mongodb 方法 从 'mongodb' 导入 mongodb; 从“dotenv”导入 dotenv; // 配置 dotenv dotenv.config(); // eslint 禁用...
摩卡突然扔了 类型错误:将循环结构转换为 JSON 我已经完成了执行测试用例的新设置。 直到昨天,测试用例都运行良好。 我正在使用:M...
在不使用 babel 的情况下对原生 ES 模块的导出进行存根
我正在使用 AVA + sinon 来构建我的单元测试。由于我需要 ES6 模块并且我不喜欢 babel,因此我在整个项目中使用 mjs 文件,包括测试文件。我使用“--experimental-modules”参数...
是否可以使用 sinon 在 CommonJS 模块中存根导出函数?
快到2021年了,有没有办法mock单个函数?我的意思是没有对象的函数。 // 演示.js module.exports = () => { return '真实功能演示'; }; // 演示.test.js 常量演示 = 要求(...
所以我有一个名为article.js的文件,如下所示: 从 'indefinite' 导入 a; 函数格式文章(值){ 返回一个(值); } 导出 { 格式文章 }; 导出默认格式文章; ...
Sinon 使用 Firebase 实时数据库监听器进行单元测试
我正在针对具有 Firebase RTDB 集成的节点应用程序进行单元测试,解决一些问题。我正在尝试为我的 Firebase 听众构建测试,但其中一个让我感到不舒服。 例如,如果我有...
尽管使用了 sinon.sandbox,但 ava 的 sinon 存根错误“尝试包装已包装的 myFunction”
我在使用 Ava 以并行模式运行测试时遇到 Sinon 问题。每当我使用 ava --parallel 运行测试时,都会收到以下错误: myfile 的 beforeEach 钩子 错误...
我正在尝试对所有 API 调用进行单元测试。每个调用都通过了测试,但我仍然收到错误消息: ✘ 运行测试时超时 运行 test.js 时无法退出。我尝试添加一个
我想用 bar 存根 process.env.FOO 。 var sinon = require('sinon'); var Stub = sinon.stub(process.env, 'FOO', 'bar'); 我很困惑。 我读了文档,但还是不明白。sinonjs 做...
对于单元测试来说相当陌生。我正在使用Chai+Mocha 和Sinon 为我的代码编写单元测试,但我陷入了困境,因为我无法决定是否应该使用Sinon 存根或假存根。我哈...
很多类似的问题,但似乎都不合适。 假设有一个nodejs函数: 异步函数处理程序(事件){ 等待解析事件(事件) if(事件.a) 等待 doBusinessLogicA(事件) ...
我正在尝试为我们的小型但很快就会增长的 testcafe 业务功能库编写单元测试 - 即使用页面文件的库,以测试任何不简单的逻辑。 对此...