unit-testing 相关问题

单元测试是一种方法,通过该方法测试各个源代码单元以确定它们是否适合使用。

为所有测试迁移和播种数据库一次

我正在尝试使用 Laravel PHP 单元测试来测试 Laravel API,我想为所有测试刷新和播种我的测试数据库一次。我需要在 Testcase Laravel 类中做什么才能得到这个......

回答 1 投票 0

使用测试库测试链接的功能

这是我第一次使用react-testing库。我有一个 React 自定义 React 组件,它有一个可点击的链接,可以下载存储在 Redux 存储中的文件。查看代码...

回答 1 投票 0

如何模拟对象来测试依赖于接口具体实现的方法

在下面的示例中,我有一个取决于接口的具体类型的方法。如何测试 .Eat 是否被 Moq 调用? 公共接口 IAnimal { 无效吃(); } 公共...

回答 2 投票 0

如何对需要对外部服务进行 API 调用的 Python 类进行单元测试?

该类旨在包装远程托管的大型语言模型,并且必须对服务进行 API 调用以获取结果。这是一个例子。 类 ModelWrapper(AbstractLLMInterface): ...

回答 1 投票 0

如何模拟一个字段设置为 System.getEnv("...") 的类?

我正在尝试为一个变量值设置为 System.getEnv("...") 的类编写单元测试。现在,我在运行测试类时遇到初始化错误。我尝试过嘲笑...

回答 1 投票 0

如何在 Shouldly 和 FluentAssertions 之间进行选择?

Shouldly 和 FluentAssertions 之间有什么区别(如果有)? 其中一方能做另一方不能做的事情吗?或者它们在功能上是相同的,只是语法不同? 唯一的...

回答 1 投票 0

单元测试失败,因为 fest.fn() 未触发 openConfirmationModal 函数

it('文本字段', async () => { 常量道具= { openConfirmationModal: jest.fn() } const { queryByTestId, findByTestId } = 渲染( it('text field', async () => { const props = { openConfirmationModal: jest.fn() } const { queryByTestId, findByTestId } = render( <FormInputs openConfirmationModal={props.openConfirmationModal} /> ); const input = queryByTestId('input-component-amount') as HTMLInputElement; expect(input).toBeInTheDocument(); fireEvent.change(input, { target: { value: 123 } }); const textArea = queryByTestId('textarea-component-textfield') as HTMLTextAreaElement; expect(textArea).toBeInTheDocument(); fireEvent.change(textArea, { target: { value: 'This is some text!' } }); const submitButton = queryByTestId('button') as HTMLButtonElement; expect(submitButton).toBeInTheDocument(); expect(submitButton).toBeEnabled(); fireEvent.click(submitButton); expect(props.openConfirmationModal).toHaveBeenCalledTimes(1); const submitModalButton = queryByTestId('confirmation-modal-submit-button') as HTMLButtonElement; expect(submitModalButton).toBeInTheDocument(); }); import React, { useState } from 'react'; interface FormInputsProps { openConfirmationModal: () => void; } const FormInputs: React.FC<FormInputsProps> = ({ openConfirmationModal }) => { const [amount, setAmount] = useState<string>(''); const [reason, setReason] = useState<string>(''); const [isModalOpen, setIsModalOpen] = useState<boolean>(false); const handleSubmit = () => { if (amount && reason) { openConfirmationModal(); setIsModalOpen(true); } }; const handleModalSubmit = () => { Calling API.... setIsModalOpen(false); // Close modal on confirmation }; return ( <div> <input data-testid="input-component-amount" type="number" value={amount} onChange={(e) => setAmount(e.target.value)} /> <textarea data-testid="textarea-component-textfield" value={reason} onChange={(e) => setReason(e.target.value)} /> <button data-testid="button" onClick={handleSubmit} disabled={!amount || !reason} > Submit </button> {isModalOpen && ( <div data-testid="confirmation-modal"> <p>Are you sure you want to submit?</p> <button data-testid="confirmation-modal-submit-button" onClick={handleModalSubmit} > Confirm </button> </div> )} </div> ); }; export default FormInputs; 在expect(props.openConfirmationModal).toHaveBeenCalledTimes(1)无法看到模态并出现错误“无法找到元素”对于const submitModalButton = queryByTestId('confirmation-modal-submit-button') as HTMLButtonElement。 我看到两个问题,fireEvent 和 queryByTestId。 您可以直接使用 findBy 或 getBy 来查找元素,而不是使用 queryByTestId 来查找元素。在异步使用的情况下,findBy 是首选。 参考文档 问题在于 fireEvent,没有 act 块。 我建议使用反应测试库中的 userEvent 和 act 块。 userEvent 文档 请参考正确的版本,因为最新版本几乎没有变化。 await act(async () => { await userEvent.type(textArea, "This is some text!"); } await act(async () => { await userEvent.click(submitButton); }); 这是一直以来的首选。 但无论如何,如果您希望继续执行 fireEvent,则始终需要将其包装在 act 块中。 await act(async () => { fireEvent.change(textArea, { target: { value: 'This is some text!' } }); } await act(async () => { fireEvent.click(submitButton); }); 使用 fireEvent 时,通常异步状态不会正确传播,除非它被包装在 act 中

回答 1 投票 0

使用 Jest 模拟 sqlite3

我正在努力嘲笑我的 sqlite3 实现来进行我的玩笑测试。我准备了一个 Stackblitz 来解决我的问题,不幸的是我无法用 :( 来运行 jest 我想为附加编写测试...

回答 1 投票 0

构建 Maven 项目而不运行单元测试

如何在不运行单元测试的情况下构建 Maven 项目? 目前正在重构一些 Servlet 代码,并想在我的 Web 浏览器中尝试一下(这意味着运行 mvn install ...

回答 8 投票 0

我应该使用一个大型 Laravel 应用程序还是为多个后端项目使用单独的应用程序?

我正在使用 Laravel 构建多个共享相似功能和数据库结构的后端系统。这些系统用于不同的目的或客户,但它们具有重叠的功能,例如

回答 1 投票 0

C++单元测试(catch2)中SECTION是否同时运行?

我是 C++ 新手,正在学习使用 catch2 进行单元测试。我正在写一个这样的测试用例 TEST_CASE("Sandwich::AddTopping 测试", "[AddTopping]") { // 您对 Sandw 的测试...

回答 1 投票 0

在 C 中使用静态变量测试函数

我在单元测试中一一执行多个场景时遇到问题。我正在测试一个函数,其中使用静态变量,并且它们在之前的测试场景之后存储变量的状态。我...

回答 1 投票 0

如何在Fast API的单元测试中访问数据库?

我在 Fast API 中进行单元测试时很难访问 SQLAlchemy。 def test_successful_register_ios(): 响应 = client.post("/register/",headers={},json={}) 断言响应。

回答 2 投票 0


PHPunit配置文件phpunit.xml.dist和phpunit.xml命名有什么区别吗

有人可以向我解释一下使用名为 phpunit.xml.dist 或 phpunit.xml 的 PHPunit 配置文件有什么区别吗? 官方文档提到了这两个名字: PHPUnit 的 XML

回答 3 投票 0

ReferenceError:初始化之前无法访问“jest_mock_extended_1”

我有以下代码。 单例.ts 从“../prismaClient”导入 prisma; 从“jest-mock-extended”导入{mockDeep,mockReset}; 从“@prisma/

回答 3 投票 0

Rust 中的单元测试超时

有没有办法为 Rust 中的特定单元测试指定超时? 唯一的方法是将其作为硬编码参数添加到测试用例中:https://docs.rs/ntest/0.7.2/ntest/index.html 但我...

回答 2 投票 0

使用 Swift 中的 ConcurrencyExtras 包了解并减少测试执行时间

在我的单元测试应用程序中,我们的团队严重依赖工具来执行异步测试 - ConcurrencyExtras - withMainSerialExecutor 该工具增加了在主线程上启动测试代码的可能性,并且......

回答 1 投票 0

在注入模拟类中模拟 void 方法

我正在努力模拟一个 void 方法,该方法是在注入模拟类中编写的,我需要为其编写 junit。 数学.java @成分 公开课数学{ @Autowired 私人数据数据; p...

回答 1 投票 0

升级到 Spring Boot 3.4.0(特别是 spring-web 6.2.0)后,Spring Cloud Gateway 测试失败

升级到 Spring Boot 3.4.0 (Spring Web 6.2.0) 后,我的网关过滤器测试开始失败。之前的测试验证了请求头修改正确,但是现在修改...

回答 1 投票 0

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.