使用笑话模拟时出现打字稿错误

2024-02-13

我有一个之前创建的.js文件模拟了我们的一些功能jest测试目的。我正在将其迁移到.ts file:

服务器.ts

const Server = jest.genMockFromModule('../Server');

Server.getAsync = Server.default.getAsync;
// other REST-ful functions here

export default Server;

我收到以下错误:

类型“{}”上不存在属性“getAsync”

类型“{}”上不存在属性“default”

然后,在相应的测试文件中:

MyComponent.test.ts

import Server from 'path/to/Server';

jest.mock('path/to/Server');

const dispatchMock = jest.fn();
const getStateMock = jest.fn();

describe('MyComponent.someFunction', () => {
    beforeEach(() => {
        jest.resetAllMocks();
    });

    it('Does the right stuff', () => {
        Server.getAsync.mockReturnValueOnce(Promise.resolve([{ key: 'value' }]));
        dispatchMock.mockImplementationOnce((promise) => promise);
        dispatchMock.mockImplementationOnce();

        return someFunction()(dispatchMock)
            .then(() => {
                expect(Server.getAsync).toHaveBeenCalledTimes(1);
                expect(Server.getAsync.mock.calls[0][0]).toBe('something');
            });
    });
});

我收到错误dispatchMock.mockImplementationOnce()

预期有 1 个参数,但得到 0 个。(方法) jest.MockInstance.mockImplementationOnce(fn: (...args: any[]) => 任何):jest.Mock

...on Server.getAsync.mockReturnValueOnce

属性“mockReturnValueOnce”在类型“(url: string, 基本路线?: 字符串 | null,loadingGenerator?:(isLoading:布尔值)=> { 类型:字符串...'。

...以及继续Server.getAsync.mock

属性“mock”在类型“(url: string, baseRoute?: 字符串| null,loadingGenerator?: (isLoading: boolean) => { 类型: 斯特林...'。

我已经为此苦苦思索了一段时间,所以任何帮助将不胜感激。

UPDATE

好的,我添加了as any到我的第一行的末尾Server.ts文件所以现在看起来像:

const Server = jest.genMockFromModule('../Server') as any;

这样就消除了第一组错误。仍然面临我的错误.test.ts文件虽然。

UPDATE 2

我注意到,当我运行实际的笑话测试时,即使存在类型错误,它们也都通过了。这些问题似乎与实际测试无关。


我自己解决了这个问题。我让它工作的方法是将任何呼叫投射到Server.getAsync到特定的笑话模拟类型。

let getAsyncMock = Server.getAsync as jest.Mock

or

let getAsyncMock = <jest.Mock>(Server.getAsync)

这消除了我的错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用笑话模拟时出现打字稿错误 的相关文章

  • 使用 Minitest 测试自定义验证器

    我有多个带有电子邮件验证的模型 因此 我将验证提取到自定义验证器中 我按照以下教程做到了这一点导轨指南 http guides rubyonrails org active record validations html custom va
  • Angular.js:未捕获的错误,没有模块:myapp

    我也在尝试引导 angular js 项目 这是我的index html div p Loading p div
  • React 不响应按键事件

    我正在尝试实现一些非常基本的按键检测 但我根本无法让它工作 我有一个裸露的组件 应该在onKeyDown事件 但控制台中没有任何内容被注销 class App extends React Component constructor prop
  • Access-Control-Allow-Headers 不允许请求标头字段 Access-Control-Allow-Headers

    我试图通过发布请求将文件发送到我的服务器 但是当它发送时会导致错误 Access Control Allow Headers 不允许请求标头字段 Content Type 所以我用谷歌搜索了错误并添加了标题 http post rootSc
  • JavaScript 中的正则表达式用于验证十进制数字

    我想要 JavaScript 中的正则表达式来验证十进制数字 它最多只允许两位小数 例如 它应该允许10 89但不是10 899 它还应该只允许一个句点 例如 它应该允许10 89但不是10 8 9 尝试使用以下表达式 d d 0 2 如果
  • 根据用户区域设置过滤字符串列表

    当使用 AngularJS 1 6 处理 JavaScript 项目时 我有一个要过滤的字符串列表 例如 假设我的列表包含 rbol cig e a nido and tubo 当过滤西班牙语字符串时 如果我过滤 u 我会期望两者cig e
  • 如何聚焦反应路由器链接

    我有一个用于搜索的输入框 并且希望能够按向下键将焦点从输入移动到列表的第一个s 看来我这里的东西不起作用 因为不是实际的 DOM 节点 我能够使用它来工作 a 代替 though let Link require react router
  • 在每页上插入折叠标记 (wkhtmltopdf)

    我正在使用 wkhtmltopdf 0 12 2 1 创建发票等 我需要在 pdf 的每一页上显示折叠标记 如果内容大于一页 如何在每个页面上使用 javascript 重复它们 这是我的基本标记 div class marks div c
  • 使用 javascript 将 html 文本渲染为位图,无需服务器端代码

    我需要使用 javascript 代码来转换 html 中的文章 帖子 以便最终用户以位图的形式查看 有没有办法在没有服务器端代码的情况下做到这一点 example p testing text here p 您可以使用例如html2can
  • Javascript 正则表达式来匹配正则表达式

    我正在研究一个特殊的正则表达式来匹配 javascript 正则表达式 现在我有这个正则表达式工作 i g m 例如 foo match i g m gt foo foo undefined foo i match i g m gt foo
  • 在overlayImage中应用滤镜的方法在哪里?

    我想在overlayImage中应用一个过滤器 唯一的方法是在渲染后在整个画布上应用过滤器 对此没有内置支持 但很容易 破解 var overlayImageUrl load overlay image first fabric Image
  • 如果多个键是相同的 JS,则对对象中的值求和

    例如我有 5 个对象 row aa col 1 value 1 row bb col 2 value 1 row bb col 3 value 1 row aa col 1 value 1 row aa col 2 value 1 我想对值
  • 为 Meteor 数据创建编号列表

    有没有办法获取 Meteor 集合中项目的编号列表的 编号 我知道我可以在 html 中做到这一点 但我觉得如果我可以在 spacebars 中放置一些东西 那么样式会更容易 如果我可以使用更好的术语 请告诉我 像这样的东西 前 20 部电
  • 使用本机 JavaScript 获取过渡中的 CSS 值

    这个问题之前被问过 但答案使用了 jQuery here https stackoverflow com q 8920934 3186555 因此 我将调整问题以专门询问native解决方案 to 最小化依赖关系 假设您有一个 div 然后
  • 水平平滑滚动 100px

    Heyjo problem 一周以来我一直在寻找 javascript 或 jQuery 代码 以便在我的网站上实现滚动按钮 我失败的那一刻是按钮应该多次工作的时候 他的任务不是滚动到专用元素 而是应该向左滚动 例如 100px 此外 滚动
  • 如何设置在浏览器的新选项卡(_blank)中打开的pdf文件的标题

    这是我的尝试 是否在新选项卡上打开 但它总是显示test pdf如题 function titlepath path name alert path alert name document title name window open pa
  • 如何查看网站浏览者的操作系统?

    我运行的是 Ubuntu 8 04 最近在访问网站时收到以下错误 请使用运行 Windows 98 2000 Me NT 或 XP 的计算机返回 www site com 网站如何知道我正在运行哪个操作系统 是仅通过 javascript
  • 为什么 JSON 结果可以是布尔值而不是对象或数组?

    From JSON 网站 http json org JSON 建立在两种结构之上 名称 值对的集合 在各种语言中 这被实现为对象 记录 结构 字典 哈希表 键控列表或关联数组 值的有序列表 在大多数语言中 这被实现为数组 向量 列表或序列
  • 为什么从浏览器上传到 S3 时出现 403 错误?

    因此 我尝试查看此处之前的答案 但似乎没有任何效果 我正在使用 Dropzone 它似乎发出 OPTIONS 请求来获取所有允许的 CORS 相关信息 但它似乎没有正确返回 因此 通过查看 Chrome 开发工具 我有以下请求标头 Host
  • Three.js WebGL 从着色器绘制圆形自定义填充和边框颜色

    我将 Three js 与 WebGLRenderer 一起使用 我试图找出或查看如何使用 CircleGeometry 绘制圆圈的示例 并能够从顶点或片段着色器控制其填充和边框颜色 如果不使用图像作为纹理 这是否可能 抱歉 如果这真的很简

随机推荐

  • 如何将自定义类型调用函数泛化为抽象类型?

    我有以下模拟设置 其中包含抽象类型 具体类型作为子类型和函数f它需要两个参数 第一个是Letter abstract type Letter end struct A lt Letter end struct B lt Letter end
  • 使用子记录数据更新父记录的字段(同一表)

    我有一张表 其中存在父 子关系 其中每个孩子的ExternalCategoryCode列数据需要连接到父级中ExternalCategoryCode 以下是一些已损坏的示例数据 其中父记录 Id 96 ExternalCategoryCod
  • 将completionSelector 和completionTarget 与UIImageWriteToSavedPhotosAlbum 结合使用

    我正在尝试找出一种方法让我的 iOS 应用程序将屏幕截图保存到相机胶卷 然后弹出警报告诉用户屏幕截图已成功保存 我能想到的唯一方法是使用某种形式的 if else 循环 正如您将在下面的伪代码注释中看到的那样 但我想不出任何语法来使用UII
  • Android 需要深厚的 Java 知识吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 以对数刻度间距绘制 x 轴,但不以指数形式标记它

    我想绘制两个值x 0 10 20 50 100 and y 1 2 3 10 100 使用pylab 我想将 x 轴的间距保持为对数形式 但我想在 x i e 的值 10 20 50 100 处勾选并打印它们 因为它不是 10e1 或 10
  • 我如何知道哪一行代码导致我的 iOS 应用程序在 Xcode 9 中崩溃

    I am building an app in Xcode 9 Swift 4 and it crashes before it even loads completely I get an error Thread 1 Signal SI
  • NUnit 测试项目无法加载 System.Windows.Forms 的程序集

    我有一个专门用于单元测试的 NUnit 测试项目 其目标框架为 Net Core 2 1 该测试项目引用了另外两个项目 其中一个是窗口窗体基于应用程序 另一个是类库基于数据库交互的应用程序 这两个项目的目标框架都是 Net Framewor
  • 获取包含的库的版本信息?

    我创建了 2 个项目 其中 1 个是 Lib 第 2 个是 Test 我从测试应用程序将上下文传递给 Lib 项目 由于我在 Lib 中有上下文 因此我在 Lib 中使用了以下代码 字符串版本 this mContext getPackag
  • 随机数生成器:它应该用作单例吗?

    我在几个地方使用随机数 并且通常在需要时构建一个随机数生成器 目前 我使用 Marsaglia Xorshift 算法将当前系统时间作为种子 现在我对这个策略有一些疑问 如果我使用多个生成器 生成器之间的数字的独立性 随机性 取决于种子 相
  • 如何使用 Google Translator Api 将转换后的英文文本设置到另一个文本框?

    我有两个文本框 一个用于英语 另一个用于印地语 当我在第一个框中输入英语时 文本应在第二个框中显示为印地语版本 在按键事件上 我已经提到了一个例子如何在您的网站中通过 Google API 将英语翻译成印地语 http arunsonare
  • 单选按钮检查事件处理

    在我的应用程序中 我需要一个单选组 每当选中单选按钮时 就会出现警报 以便我可以使用 jQuery 将其值发布到 ajax post 你能帮我看看我如何在 jQuery 中做到这一点吗 尝试这样的事情 function input type
  • 使用自签名证书是否可以防止中间人攻击?

    我不确定以前是否有人问过类似的问题 我找不到任何问题 但是是否可以保护客户端 服务器免受中间人攻击 我正在编写一个客户端应用程序来与服务器进行通信 通信将基于 SSLv3 我对服务器的自签名证书没问题 但担心其他人以相同的服务器名称生成相同
  • 推送到 git 时出现非快进错误

    我得到了一个non fast forward尝试推送到 WordPress git 存储库时出错 但像错误消息所说的那样拉动会给我一条消息 表明一切都是最新的 这是在拉取 合并和提交之后 这是我的日志 http pastebin com 6
  • linux任务集:多线程进程的线程是否始终在特定核心上运行?

    我使用任务集设置多线程进程在 Linux 主机上运行 如下所示 任务 c 1 2 myprocess 特定线程是否总是在特定 CPU 上运行 例如线程 1 总是在 c1 上运行 或者它会在不同时间在 c1 或 c2 上运行 不 过滤器应用于
  • VueJs 模板。如何加载外部模板

    我是 Vue js 的新手 我使用 AngularJS 一段时间了 在 Angular 中我们用来加载模板 例如 template sometemplate html controller someCtrl 我们如何在 Vue 中做这样的事
  • 如何根据我的应用程序版本自动设置 Inno Setup 安装程序的版本?

    我正在使用 Inno Setup 来生成我的应用程序的安装程序 如何设置setup exe的版本号 VersionInfoVersion 由 Inno 生成以自动与我的应用程序的版本号匹配 现在 每次部署应用程序的新版本时 我都需要手动更新
  • 防止出现滚动条时居中布局移动其位置

    我的页面布局看起来像这样的东西 http jsfiddle net salman qxywp show div div 您会注意到 当垂直滚动条出现时 内容换行 div 的位置稍微移动了一点 一种情况是当浏览器开始逐步呈现页面而不显示垂直滚
  • 测试 Windows 安装程序

    我在一家软件公司工作 我们有一个适用于 Windows 操作系统的产品 可以使用自定义安装程序进行安装 我们希望拥有一个每天运行安装程序的自动化系统 确保所有内容均已安装且正常运行 应用程序已安装 出现在 添加 删除 中 创建快捷方式 创建
  • 如何在Processing中创建3D平台游戏,包括玩家移动、熔岩和移动块障碍物?

    这非常重要请帮忙 我想在这段代码中添加以下功能 我创建的玩家可以停留在我创建的阶段的顶部 并且无法通过它 如果玩家触及熔岩 游戏就会停止并写上 你输了 如果玩家来到我按下熔岩时创建的终端平台 你赢了 写下来 让我创建的阶段在 y 轴上上下移
  • 使用笑话模拟时出现打字稿错误

    我有一个之前创建的 js文件模拟了我们的一些功能jest测试目的 我正在将其迁移到 ts file 服务器 ts const Server jest genMockFromModule Server Server getAsync Serv