sinon 相关问题

Sinon是JavaScript的模拟框架,可以创建间谍,存根和模拟。

与 Sinon/Chai 的第一次通话测试参数

我正在尝试为我的单元测试匹配函数调用的参数。 测试代码如下: beforeEach(() => { enrollmentOffer = offerReadModel(EnrollmentOfferStatuses.Accepted, false,

回答 1 投票 0

TypeError:无法存根 ES 模块 - Sinon

Stubbing with Sinon 为命名函数导出返回错误,并且它按预期的方式为默认函数导出工作。 在下面的代码中,foo1Stub = Sinon.stub(foos1, "foo1");因为...

回答 1 投票 0

Sinon存根通过参数

我希望能够将存根接收到的参数返回给承诺,这可能吗: 实施: 函数(参数){ 返回 db.find(arg) .then(结果 => { 返回

回答 1 投票 0

如何存根这个 js 函数

How do I stub the responseFromRegisterAirQloud in tenant.toLowerCase(), "空气质量", AirQloud架构 ).register(modifiedBody); getModelByTenant 函数是

回答 0 投票 0

模拟 Postgresql now() 函数进行测试

我有以下堆栈 节点/快递后端 PostgreSQL 10 数据库 用于测试的摩卡咖啡 嘲笑诗乃 我已经编写了一堆端到端测试来测试我所有的网络服务。问题是

回答 4 投票 0

带有 sinon 存根的模拟反应自定义钩子

我有一个自定义挂钩,可以返回 api 调用。它看起来像这样: 导出常量 useApiData = () => { const queryClient = useQueryClient(); const [networkError, setNetworkError] = useS...

回答 1 投票 0

How to Mock or Stub Process.argv

如何模拟或存根 process.argv 值以便它可以返回特定参数? 我试过像这样使用沙箱: beforeEach(() => { sandbox.stub(process.argv.slice(2)[0], 'C:\home\project\

回答 2 投票 0

使用 ES6 import 语句使用 proxyquire 时如何修复父上下文不可用?

我有以下文件要测试 从“../conf/maria_db_connector”导入{getDatabaseName} 导出默认类 MigrationRepository { getExistingVersions() { 返回

回答 0 投票 0

如何在同一个测试用例中多次使用sequelize-mock变量

对于这个项目,我使用的是 MySQL DB 和 Sequelize ORM。为了进行测试,我使用了 mocha、chai 和 sinon 模块。 我有一个用户模型和方法 createUser。我正在尝试使用 sequelize-mock t...

回答 0 投票 0

Trying to stub a function results in Descriptor for property is non-configurable and non-writable

我正在尝试编写一个单元测试,从 @aws-sdk/s3-request-presigner 包中存根 getSignedUrl 函数,但是当我尝试用 sinon 存根该函数时,我收到错误:

回答 4 投票 0

在函数内部存根函数而不将其作为参数传递

我有以下功能: const complicatedFunction = async function (argA, argB) { 常量结果 = 等待 getValue(argA) 常量值 = 等待 getValue2(argB) const 组合 = comp...

回答 0 投票 0

Sinon 不能存根不存在的自己的属性“函数”

我正在尝试模拟一个模块数据库,以便其 getRecordDetails() 成员函数始终返回一些固定数据。见下文: 处理程序.js const sinon = require("sinon"); 常量数据库...

回答 1 投票 0

使用 sinon 存根测试对象上的方法

我想测试对象内部的函数。代码,我们称之为 someFile.js,结构如下。 从“一个位置”导入一些服务; const val = someService.getVal(); 常量对象 = {

回答 1 投票 0

为 XMLHttpRequest 编写 JavaScript 测试

在测试使用 Sinon 的 fakeXMLHttpRequest 的函数时,当我运行测试时,我得到: 错误:连接 ECONNREFUSED 127.0.0.1:80 在 TCPConnectWrap.afterConnect [as oncomplete] (net.js:1159:...

回答 0 投票 0

如何在 mocha 中测试非等待的异步函数调用?

我想为调用异步运行的 postReservation 服务的预订服务编写 mocha 测试套件?如何测试是否调用了 postReservation 服务? 异步函数

回答 1 投票 0

Sinon stub - 存根用 swagger 生成的 axios api

我有一个由 swagger open api 生成的文件。我正在编写一些测试并第一次使用 sinon 存根。我想知道如何从一个类中存根 api 调用: 导出类 Api 我有一个由 swagger open api 生成的文件。我正在编写一些测试并第一次使用 sinon 存根。我想知道如何从一个类中存根 api 调用: export class Api<SecurityDataType extends unknown> extends HttpClient<SecurityDataType> { case = { /** * @description Create new case * * @tags case-controller * @name CreateCase * @request POST:/case * @secure */ createCase: (data: CreateCaseRequest, params: RequestParams = {}) => this.request<CreateCaseResponse, any>({ path: `/case`, method: "POST", body: data, secure: true, type: ContentType.Json, ...params, }), findMetadataForCase: (caseNumber: string, params: RequestParams = {}) => this.request<CaseDto, void>({ path: `/case/${caseNumber}`, method: "GET", secure: true, ...params, }), } } 我正在像这样实例化这个 Api: import { Api as CaseApi } from "../api/CaseApi"; export const CASE_API = useApi(new CaseApi({ baseURL: environment.url.case }), "case", "fss"); 我也做了一个处理这个api的文件: export const useApiData = () => { const [networkError, setNetworkError] = useState<string>(null); const fetchCase = async (caseNumber: string) => { const case = await CASE_API.case.findMetadataForSak(caseNumber); return case.data; }; const getCaseAndRoles = (caseNumber: string) => { const { data: sak } = useQuery({ queryKey: `case-${caseNumber}`, queryFn: () => fetchCase(caseNumber), staleTime: Infinity, }); const { data: roles } = useQuery( "roles", ({ signal }) => fetchPersons(case, signal).then((persons) => mapPersonsToRoles(case, persons)), { staleTime: Infinity, enabled: !!case } ); return { case: case, roles: roles }; }; const api = { getCaseAndRoles, }; return { api, networkError }; }; 我想对一个从 getCaseAndRoles 钩子调用 useApiData 的组件进行单元测试。 export const CasePage = () => { const { activeStep, setActiveStep, caseNumber } = useCase(); const { api, networkError } = useApiData(); const { case, roles } = api.getCaseAndRoles(caseNumber); return (...some jsx 我想用假数据测试这个组件: describe("CasePage", () => { it("should render", async () => { mockCase(); render(<CasePage />); await waitFor(() => expect(document.querySelector("button")).not.to.be.null); }); }); 但是,我不确定如何为它创建模拟存根: export function mockSak(sinonSandbox: SinonSandbox = sinon.createSandbox()) { const caseApiMock = sinon.stub(useApiData()).returns({ getCaseAndRoles: () => {} }); sinonSandbox.stub(caseApiMock, "getCaseAndRoles").callsFake(() => { return Promise.resolve(caseTestData); }); return sinonSandbox; } 但是,那是行不通的,我在运行测试时遇到错误: Warning: Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons: 1. You might have mismatching versions of React and the renderer (such as React DOM) 2. You might be breaking the Rules of Hooks 3. You might have more than one copy of React in the same app See https://reactjs.org/link/invalid-hook-call for tips about how to debug and fix this problem. 我也试过这个: export function mockCase(sinonSandbox: SinonSandbox = sinon.createSandbox()) { sinonSandbox.stub(useApiData).callsFake(() => { return { api: { getCaseAndRoles: () => Promise.resolve(caseTestData) } }; }); return sinonSandbox; } 但是,然后我得到以下错误: TypeError: sinonSandbox.stub(...).callsFake is not a function 我也试过这个: export function mockSak(sinonSandbox: SinonSandbox = sinon.createSandbox()) { sinonSandbox.stub(CaseApi, "case").value({ findMetadataForCase: () => Promise.resolve(caseTestData), }); return sinonSandbox; } 但是,然后我得到一个错误: TypeError: Cannot stub non-existent property case 这很奇怪,因为如果我这样做 CaseApi.property.case 我可以看到它具有该属性。 我怎样才能存根这个 api 调用?

回答 0 投票 0

使用Sinon进行请求-承诺-原生的单元测试。

请帮帮我吧。如何为这个方法写单元测试? export class Client { public async post(request: CoreOptions & UriOptions) { return requestPromise.post(request) }。}

回答 1 投票 -1

用sinon对express.js路由进行单元测试

我正在学习express和sinon(困难的方法:)。我想对以下代码进行单元测试。/ .routersroot.js var express = require('express'); var router = express.Router(); router .route('...)

回答 1 投票 1

使用承诺的Lambda的sinon存根。

我刚刚开始使用sinon,并取得了一些初步的成功,支管了DynamoDB的调用: sandbox = sinon.createSandbox() update_stub = sandbox.stub(AWS.DynamoDB.DocumentClient.prototype, 'update')...。

回答 1 投票 0

单元测试一个REST控制器,检查它是否返回一个硬编码的respose。

考虑在Express.js Rest API实现中的以下代码。它向GET请求返回一些硬编码内容: var logger = require('.utilitiesloggers') exports.root_get = function(...)

回答 1 投票 0

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