mocking 相关问题

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

模拟函数笑话但笑话调用原始函数

我有一个返回 true 或 false 的函数,我们称之为 myFunc myFunc(){ if(某事){返回 true} 否则{返回错误} } 这就是它为了 arg 所做的事情 然后我在其他地方调用它...

回答 2 投票 0

使用本机节点测试库模拟不同的调用

我正在迁移项目以使用本机节点测试运行器和模拟库。之前我用的是sinon。 从“sinon”导入{存根} 常量 myStub = 存根() .onFirstCall().returns(1) .

回答 1 投票 0

如何使用 Mockito 模拟记录

我正在尝试模拟唱片班 @测试 公共无效测试记录(){ 记录 Rec(){} Mockito.mock(Rec.class); } 但它给出了错误 org.mockito.exceptions.base.

回答 1 投票 0

如何用Python模拟Redis客户端?

我刚刚发现一堆单元测试失败了,因为开发人员没有在测试中模拟对 Redis 客户端的依赖。我正在尝试解决这个问题,但遇到困难

回答 3 投票 0

如何模拟 IConfiguration.GetValue

我徒劳地尝试模拟顶级(不属于任何部分)配置值(.NET Core 的 IConfiguration)。例如,这些都不起作用(使用 NSubstitute,但它是相同的......

回答 10 投票 0

在 Sveltekit + Playwright 中模拟后端第 3 方调用

这是一个关于在 SvelteKit+Playwright 中开发端到端测试时的设计模式/最佳实践的相当高级的问题: 确保任何后端代码的推荐方法是什么...

回答 1 投票 0

如何模拟超级引用(在超级类上)?

有时,当我编写单元测试时,我应该模拟对超类的引用。 我读过这个问题: 问题 这个答案回答了重构代码的 DI 建议。但我不能 这个答案...

回答 3 投票 0

PHPUnit 模拟对象默认情况下永远不会期望

如果没有正式定义的期望,有没有办法告诉 phpunit 模拟对象永远不要期望方法调用?

回答 3 投票 0

如何用python模拟mongo

如何创建一个模拟的 mongo db 对象来使用 python 测试我的软件? 我尝试了 https://pytest-mock-resources.readthedocs.io/en/latest/mongo.html 但出现错误。 首先,我尝试了下面的代码: 定义

回答 1 投票 0

使用 Vitest 模拟依赖关系

以下代码 https://i.stack.imgur.com/vs7vp.png 在我使用 Jest 时有效,但在 Vitest 中不起作用。 我知道 Vitest 在这种情况下的运作方式有所不同,但我还没有...

回答 1 投票 0

在 Python 中模拟远程主机

我正在使用 paramiko 编写一些函数,以在远程主机上执行命令并创建文件。我想为它们编写一些单元测试,但我不知道最简单的方法是什么

回答 5 投票 0

运行react(vitest)单元测试用例时出现错误。我知道这是由于本地图像路径造成的

错误: 标准错误|未知测试 错误:错误:连接 ECONNREFUSED ::1:3000 在 Object.dispatchError (E

回答 0 投票 0

我试图用笑话和javascript来模拟redis,当我访问redis.mock.instance[0]时它总是空的

我试图用笑话和javascript来模拟redis,当我访问redis.mock.instance[0]时它总是空的 RedisWrapper.js: ` const Redis = require('ioredis'); 常量 REDIS_USER_TTL = 604800; c...

回答 1 投票 0

mock.patch 在 with 语句的范围之外泄漏模拟对象

我在文件夹controller/下有以下三个python文件 数学.py 数学课: def __init__(自身, a, b): self.a = a self.b = b def 加法(自身): 返回 self.a + s...

回答 1 投票 0

Django Test 模拟 ImageField 阻止测试后上传或清理

我正在为我的项目开发一个测试用例,涉及一些图像和文件字段。有些对象加载了固定装置,有些对象是在测试期间创建的。我用

回答 2 投票 0

模拟 kubernetes 客户端

我正在嘲笑一个用于读取 k8s 秘密以获取秘密令牌的函数。但运行unittest会产生错误: 属性错误: 我正在嘲笑一个用于读取 k8s 秘密以获取秘密令牌的函数。但是运行unittest会产生错误: AttributeError: init.py'> 确实 没有属性“read_namespaced_secret()” 我已经经历了How do you mock Python Kubernetes client CoreV1Api,但它也对我的情况没有帮助。谁能指出我在这里做错了什么? 我的脚本 - read_sec.py import base64 from kubernetes import client, config from logger import logger class kubernetesServices(): def __init__(self): pass def get_secret_vault_token(self): try: config.load_kube_config() api_instance = client.CoreV1Api() sec = api_instance.read_namespaced_secret("random-sec", "random-ns").data token = base64.b64decode(sec['token']).decode("utf-8") return token except Exception as e: logger.error("got error at get_secret_vault_token: {}".format(str(e))) 单元测试 - test_read_sec.py import unittest from unittest.mock import patch from read_sec import * class MockKubernetes(): def __init__(self): pass def mocker_read_namespaced_secret(*args, **kwargs): class MockReadns(): def __init__(self, json_data): self.json_data = json_data def json(self): return self.json_data return MockReadns({"data":{"token":"abc123"}}) class TestkubernetesServices(unittest.TestCase): @patch("kubernetes.client",side_effect=MockKubernetes) @patch("kubernetes.config",side_effect=MockKubernetes) @patch("kubernetes.client.read_namespaced_secret()",side_effect=mocker_read_namespaced_secret) def test_get_secret_vault_token(self,mock_client,mock_config,mock_read): k8s = kubernetesServices() token = k8s.get_secret_vault_token() 您需要嘲笑 kubernetes.client.CoreV1Api 而不是 kubernetes.client。这是一个例子: import base64 import unittest from unittest.mock import patch, Mock import requests from kubernetes import client, config class kubernetesServices(): def get_secret_vault_token(self): config.load_kube_config() api_instance = client.CoreV1Api() sec = api_instance.read_namespaced_secret('random-sec', 'random-ns').data token = base64.b64decode(sec['token']).decode('utf-8') return token class TestkubernetesServices(unittest.TestCase): @patch( 'kubernetes.client.CoreV1Api', return_value=Mock(read_namespaced_secret=Mock(return_value=Mock(data={'token': b'YWJjMTIz'}))) ) @patch('kubernetes.config.load_kube_config', return_value=Mock()) def test_get_secret_vault_token(self, mock_client, mock_config): k8s = kubernetesServices() token = k8s.get_secret_vault_token() self.assertEqual(token, 'abc123') 结果: --------------------------------------------------------------------- Ran 1 tests in 0.071s PASSED (successes=1) JFYI:当您需要多个结果时,更适合使用side_effect。示例: class TestRequest(unittest.TestCase): def test_side_effect(self): with patch('requests.get', side_effect=[1, 2, 3]): print(requests.get('url1')) # 1 print(requests.get('url2')) # 2 print(requests.get('url3')) # 3

回答 1 投票 0

制作模拟杜松子酒。Context

我正在使用 Gin 框架编写 REST API。但我在测试我的控制器以及研究 TDD 和 Mock 时遇到了麻烦。我尝试将 TDD 和 Mock 应用于我的代码,但我做不到。 我创建了一个非常

回答 4 投票 0

如何用Vitest模拟依赖关系

我有一个带有 vite 的测试设置,并且有一个依赖项的依赖项,需要一些模拟选项才能正常运行,我目前将它放在 __mocks__/nestedDependency.js 文件中。 也在我的...

回答 2 投票 0

NestJS e2e 测试:用 Jest 模拟 Prisma 客户端(fastify)

在进行 e2e 测试时,您可能想要模拟对 prisma 的调用,但是使用 NestJS 模块来找到正确执行此操作的方法可能会很复杂 对于在这里寻找合适例子的人......

回答 1 投票 0

Spring webflux + Flyway clean 禁用问题

我想使用 testcontainers 和 webflux 执行一些单元测试 因此,我创建了一个扩展来在每次启动测试时清理我的 postgres 数据库。 类 ClearDatabaseExtension :

回答 1 投票 0

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