mocking 相关问题

模拟和伪造是隔离代码或组件的方法,以确保单元测试仅针对可测试的代码单元运行,而不实际使用应用程序的其他组件或依赖项。 Mocking与伪造的不同之处在于可以检查模拟以断言测试结果。

模拟对象数据

我想模拟对象数据,而不是对象本身。换句话说,我想生成 n 个对象的集合并将其传递给一个函数,该函数生成随机数据字符串和

回答 5 投票 0

@mock.patch 如何知道每个模拟对象使用哪个参数?

看这个网页:http://www.toptal.com/python/an-introduction-to-mocking-in-python -- 作者谈论了 Python 中的 Mocking 和 Patching,并给出了相当扎实的“真实-世界”的例子。那个...

回答 3 投票 0

Nestjs:测试文件中的 overrideGuardguard 不起作用

我是nestjs 和jest 的新手。 我试图超越守卫,但它不起作用。所以我的文件夹结构是: “src/app.module.ts”,“src/modules/auth/guards/myfile-guard.t...

回答 2 投票 0

我们可以使用模拟框架进行负载测试还是应该创建接口将虚拟数据注入到类中?

我有一个服务“S”,它具有生成报告并下载报告的逻辑。它是用spring-boot和java编写的。这是由另一个系统“B”消耗的,该系统的数据库“C”中的数据

回答 1 投票 0

为什么我在假 K8s 客户端中收到错误的结果?

下面我有一个非常简单的测试和一个最小的工作示例。 在测试中,我将 4 个作业插入到我的假客户端中。然后,我删除与标签和命名空间匹配的所有作业。我标记了...

回答 1 投票 0

如何使用 PyTest 来模拟具有基于 self 的副作用的属性

我尝试了下面的代码,使用 new_callable=PropertyMock 来模拟属性调用,并使用 autospec=True 能够在副作用函数中访问 self : 从unittest.mock导入PropertyMock ...

回答 1 投票 0

如何使用 vitest 在 vue3/nuxt3 CompositionAPI 中模拟 i18n t()?

给定以下组件: 给定以下组件: <template> <WglResultList :show-sorting="true" :page-title="pageTitle" :sort-label="t('sortLabel')" :sort-title="t('sortTitle')" :filter-data="computedFilterData" @emit-sorting="changeSorting" @emit-display-type="changeDisplayType" /> </template> <script setup> import { onMounted, computed, ref } from 'vue' import { useRoute, useRouter } from 'vue-router' const { t, locale } = useI18n() // Destructure the 't' translation function // .... </script> 我尝试了不同的方法来嘲笑t(),但它就是行不通: import {config, shallowMount} from '@vue/test-utils' import Overview from './[...slug].vue' import componentMock from './Overview-component.mock.js' import {mockNuxtImport} from '@nuxt/test-utils/runtime'; import { vi } from 'vitest' // This hoisted function will be globally replaced const { useI18nMock } = vi.hoisted(() => { return { useI18nMock: vi.fn().mockReturnValue({ t: msg => msg, locale: 'en' }), } }) vi.mock('vue-i18n', useI18nMock); mockNuxtImport('useI18n', () => ({ t: (tKey) => tKey, locale: 'en' })) describe('overview page', () => { let wrapper it('is a Vue instance', () => { wrapper = shallowMount(Overview, { global: { plugins: config.global.plugins, mocks: { t: (tKey) => tKey, // Return the key itself as a simple mock }, } }) expect(wrapper.vm).toBeTruthy() }) }) 我不断得到 类型错误:$setup.t 不是函数 查看这个答案和这个教程 问题在于代码分层而不是代码本身。不知道到底为什么!

回答 1 投票 0

Miragejs:无法加载离子图标 - 数据:image/svg+xml

浏览器控制台中出现以下错误,并且图标未渲染。 对象 { 描述:“Mirage:未定义”,文件名:“http://localhost:8100/js/chunk-vendors.js lin...

回答 1 投票 0

org.mockito.exceptions.misusing.InvalidUseOfMatchersException:参数匹配器的使用无效

我的测试类中有多个模拟语句,一切正常。我为 DAO 模拟添加了一条新语句: Mockito.when(myDAO.saveOrUpdate(Mockito.any())).thenReturn(Mockito.an...

回答 2 投票 0

开玩笑嘲笑属性“listObjectsV2”时它不存在?

我正在构建一个笑话单元测试。 我想使用下面的代码使用spyOn函数模拟S3 listObjectsV2 从“aws-sdk”导入{S3}; jest.spyOn(S3.prototype, 'listObje...

回答 1 投票 0

伪造RS232串口

我正在开发一个项目,其中有许多硬件传感器通过RS232串口连接到部署机器。 但是...我正在一台没有物理 RS232 串口的机器上进行开发...

回答 7 投票 0

Python 模拟:缺少 1 个必需的位置参数

我正在为我的 Flask 项目编写测试,并尝试模拟我的数据库模型。代码看起来像这样: 导入单元测试.mock @unittest.mock.patch("server.models.user") 定义

回答 2 投票 0

在 Jest 中模拟命名导出会抛出 TypeError: ...is not a function

我有一个 IconFactory.ts,它没有默认导出: 导出类图标 { 主要:字符串=“PR”; } 导出接口 IconFactory { createAsync(实体:实体):承诺 我有一个 IconFactory.ts,它没有默认导出: export class Icon { primary: string = "PR"; } export interface IconFactory { createAsync(entity: Entity): Promise<Icon>; } export class MyIconFactory implements IconFactory { async createAsync(entity: Entity): Promise<Icon> { const icon = new Icon(); //Some other logic return icon; } } 在我的功能代码 Client.ts 中,我创建了 MyIconFactory 的实例: import { MyIconFactory, type Icon, } from "IconFactory"; export async function createIcon(entity: Entity){ const iconFactory = new MyIconFactory(); await iconFactory.createAsync(entity); } 我正在尝试编写一个单元测试来测试 Client.createIcon(),通过在 Client.test.ts 中模拟 IconFactory.createAsync() : import { Icon, MyIconFactory, } from "IconFactory"; import { createIcon } from "Client"; const mockIcon = new Icon(); const mockCreate = jest.fn().mockResolvedValue(mockIcon); jest.mock("IconFactory", () => { const originalModule = jest.requireActual( "IconFactory" ); return { __esModule: true, ...originalModule, MyIconFactory: jest.fn().mockImplementation(() => { return { createAsync: mockCreate }; }), }; }); it("should create markers when consignment addresses are overridden", async () => { Entity entity = new Entity(); const result = createIcon(entity); //...Assertions }); 但是当它运行时,它会在await iconFactory.createAsync(entity);处抛出错误:TypeError: iconFactory.createAsync is not a function. 我在这里做错了什么吗? 提前致谢。 我也尝试过 jest.spyOn(IconFactory.prototype).mockResolvedValue(mockIcon); 但这根本没有嘲笑。 Client.createIcon() 仍然使用 iconFactory.createAsync 中的原始实现。 可以使用jest.spyOn(),比jest.mock()简单 import { Icon } from './IconFactory'; import { createIcon } from './Client'; import { Entity } from './Entity'; import { MyIconFactory } from './IconFactory'; it('should create markers when consignment addresses are overridden', async () => { const mockIcon = new Icon(); const createAsyncSpy = jest.spyOn(MyIconFactory.prototype, 'createAsync').mockResolvedValue(mockIcon); const entity = new Entity(); await createIcon(entity); expect(createAsyncSpy).toHaveBeenCalledWith(entity); createAsyncSpy.mockRestore(); });

回答 1 投票 0

剧作家似乎没有在跟踪查看器中填写路线

我正在尝试设置一些剧作家测试,以便拦截和欺骗一些基本的身份验证和用户路由。测试看起来像这样: test('模拟用户和会话调用', asyn...

回答 1 投票 0

Junit 和 Mockito 如何使用模拟参数实例化模拟类

我对mockito不太熟悉。我试图模拟在另一个类中实例化的类的结果。 公共类测试类{ @测试 公共无效testSomething(){...

回答 1 投票 0

动态wiremock捕获路径参数并返回响应

我正在尝试使用 WireMock 创建动态模拟。我有一种情况,如果我指定 URL 像 http://localhost:8989/api/account/121 那么我应该收到这样的回复: ”

回答 2 投票 0

phpunit - 不使用注入进行模拟?

我正在学习 phpunit 并注意到很多示例似乎是模拟一个类,然后将其注入另一个类,然后测试该方法。我想知道如果我想不注射就测试怎么办? 对...

回答 1 投票 0

如何在Python单元测试中每次使用不同的参数断言多个方法调用?

我正在使用 python unittest 来测试我的代码。作为我的代码的一部分,我正在使用这些 boto3.client('sts') boto3.client('ec2') boto3.client('ssm', arg1, arg2) 所以我在编写测试c之前嘲笑了boto3...

回答 1 投票 0

使用 Moq 模拟内部类以进行单元测试

假设我有一个类“ClassA”,它依赖于类“ClassB”(注入到ClassA的构造函数中)。我想模拟 ClassB,以便可以单独测试 ClassA。两个班都是 int...

回答 2 投票 0

使用参数模拟类

这是我下面的方法,它返回一个数据帧 def 重构报告( df ): """根据需要使用附加信息进行增强""" 对于 ['ClassA', 'Cla...

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.