使用 Mocha、Chai 和 Sinon 的 Node.js 单元测试

上面的代码正在create测试UserRepository. 请注意,我们正在对方法进行存根。存根是必需的,因为我们的目标是测试存储库而不是模型。该create方法调用create存储库方法,将新用户的名称和电子邮件作为参数传递。在本文中,我们将了解如何使用Mocha进行测试,使用 Chai进行断言,以及如何使用Sinon进行模拟、上面的代码正在测试该方法。服务和存储库模式构建我们的应用程序,因此我们的应用程序将被分解为存储库、服务和控制器。我们还断言存根至少被调用一次,然后断言该方法的返回值是正确的。
摘要由CSDN通过智能技术生成

编者注:本文最后更新于 2023 年 1 月 5 日,以确保所有信息在撰写本文时与最新版本的 Mocha、Chai 和 Sinon 兼容。

测试有助于记录应用程序的核心功能。正确编写的测试可确保新功能不会引入破坏应用程序的更改。

维护代码库的工程师不一定是编写初始代码的同一位工程师。如果代码经过适当测试,另一位工程师可以自信地添加新代码或修改现有代码,如何在 Mac 上的 Safari 中组织书签并期望新更改不会破坏其他功能,或者至少不会对其他功能造成副作用。

JavaScript 和 Node.js 有许多测试和断言库,如何在 Mac 上打开 RAR 文件例如Jest、Jasmine、Qunit和Mocha。在本文中,我们将了解如何使用Mocha进行测试,使用 Chai进行断言,以及如何使用Sinon进行模拟、如何在 Mac 上自定义文件和文件夹图标间谍和存根。

跳跃前进:

  • 什么是单元测试?

  • 摩卡咖啡

  • 为什么要使用摩卡?

  • 诗浓

  • 构建示例节点应用程序

什么是单元测试?

单元测试是检查函数在与应用程序的其他组件分离时是否按预期执行的代码片段。如何在 Mac 上的邮件应用程序中创建电子邮件模板单元测试允许我们测试应用程序中的不同功能。考虑为您的应用程序编写单元测试有几个原因:

  1. 单元测试确保您的代码在多种情况下都能按预期运行

  1. 单元测试还可以帮助您在开发周期的早期发现损坏的代码

  1. 由于任何测试失败都会揭示有缺陷的代码,因此编写单元测试会灌输一定程度的信任。一旦每次测试通过,您就可以确定您的代码可以正常运行

摩卡咖啡

Mocha是一个功能丰富的 JavaScript 测试框架,可在 Node.js 和浏览器中运行。它将测试封装在测试套件(describe块)如何在 Mac 上的邮件应用程序中创建电子邮件组和测试用例(it块)中。

Mocha 有很多有趣的特性:

  • 浏览器支持

  • 简单的异步支持,包括承诺

  • 测试覆盖率报告

  • 异步测试超时支持

  • before, after, beforeEach,afterEach挂钩等

为什么要使用摩卡?

Mocha 已经使用多年,是一个成熟的测试工具。如何在 Mac 上的邮件应用程序中将图像添加到电子邮件签名它得到了良好的支持并拥有庞大的用户群。在易用性方面,Mocha 比其他一些测试工具复杂一点,但如果使用得当,Mocha 会非常强大。因为 Mocha 是一个开发更好的产品,拥有更大的贡献者社区,如何从您的 Mac 中删除 SearchMine所以它具有更多开箱即用的功能。

要检查相等性或将预期结果与实际结果进行比较,何在 Mac 上使用空格我们可以使用 Node.js 内置断言模块。但是,当发生错误时,测试用例仍然会通过。所以Mocha推荐使用其他断言库。对于本教程,我们将使用Chai。

Chai 公开了三个断言接口:、和。如何在 Mac 上的 Microsoft PowerPoint 中为视频添加字幕它们中的任何一个都可以用于断言。expect()assert()should()

诗浓

通常,被测试的方法需要与其他外部方法交互或调用。如何在 Mac 上的 Microsoft PowerPoint 中插入实时摄像头源因此,您需要一个实用程序来监视、存根或模拟这些外部方法。这正是Sinon为您所做的。

存根、模拟和间谍使测试更健壮,如何在 Mac 上卸载应用程序:5 种快速方法并且如果依赖代码发生变化或修改其内部结构,则不易损坏。

间谍

间谍是一个伪造的函数,如何在 Mac 上离线使用 Google 云端硬盘文件它跟踪它调用的所有内容:

  1. 论点

  1. 返回值

  1. 的价值this

  1. 抛出的异常(如果有)

存根

存根是具有预定行为的间谍。

我们可以使用存根来:

  • 采取预定的行动,比如抛出异常

  • 提供预定的响应

  • 防止特定方法被直接调用(特别是当它触发不希望的行为时,如 HTTP 请求)

嘲笑

mock是一种假函数(如间谍),如何在 Mac 上使用时钟应用程序<

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

pxr007

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值