首页 > 其他分享 >Typescript 测试驱动开发 TDD (5)

Typescript 测试驱动开发 TDD (5)

时间:2023-09-21 12:55:06浏览次数:53  
标签:Typescript false Jest 测试 测试运行 ts TDD jest

ts-jest

Jest 是一个 JavaScript 测试框架,因此它会在我们的项目中寻找 JavaScript 测试来运行。我们可以运行 TypeScript 编译器生成 JavaScript 文件,或者使用像 ts-jest 这样的框架。ts-jest 是一个 TypeScript 到 Jest 的桥接工具,它将负责编译步骤和与 Jest 的集成。事实上,ts-jest 可以在不生成 JavaScript 文件的情况下编译并执行我们的 TypeScript 测试。这意味着我们可以用 TypeScript 编写单元测试,并且 ts-jest 会无缝地在 Jest 中运行它们。
我们可以按照以下方式安装和配置 ts-jest:

npm install ts-jest --save-dev
npx ts-jest config:init
npm install typescript --save-dev

在这里,我们像往常一样使用npm安装了ts-jest库。然后我们使用npx运行ts-jest,并通过命令行选项config:init指定它应该创建一个配置文件。这类似于使用npm init配置一个npm项目,或者使用tsc --init配置一个TypeScript项目。请注意,ts-jest依赖于在我们的项目中安装本地版本的TypeScript,所以我们还需要在项目目录中安装TypeScript npm包。

在我们完成所有配置之后,让我们编写一个名为hello_jest.spec.ts的文件中的简单测试,如下所示:

1 test('should be false', () => {
2     expect(true).toBeFalsy();
3 });

在这里,我们通过调用名为test的函数来开始一个测试,该函数接受两个参数。第一个参数是一个字符串值,表示测试的名称,在本例中为'should be false'。第二个参数是一个函数,即测试本身。在这个函数内部,我们使用了Jest的expect函数,它返回一个可以被称为匹配器进行评估的值。在这种情况下,匹配器是toBeFalsy。因此,这个测试期望true应该是false,显然不符合实际情况,所以这个测试应该失败。运行npm test并将此文件放置在相应位置将会运行Jest,并显示我们的测试结果,在以下截图中可见:

 (控制台输出显示 Jest 运行失败的测试)

 

在这里,我们可以看到使用ts-jest进行第一次测试运行的结果。首先要注意的是整个测试运行失败了,并且Jest告诉我们哪个测试失败了,以及它失败的具体位置。我们可以看到失败的测试位于一个名为hello_jest_spec.ts的文件中,该测试本身被命名为“should be false”,并且expect函数接收到了一个true值,而它期望得到一个false值。我们还可以看到导致错误的代码片段。

虽然对于一个单独的失败测试来说,这可能是很多信息,但请记住,在一个成熟的应用程序中,一次测试运行可能会有数百甚至数千个单元测试。当尝试修复失败的测试时,了解哪个测试失败、在哪个文件中、期望值是什么以及具体导致错误的代码都是非常宝贵的时间节省者。
继续遵循测试驱动开发范式,我们现在应该编写一些代码使得这个测试通过,如下所示:

1 test('should be false', () => {
2    expect(false).toBeFalsy();
3 });

在这里,我们已经将传递给expect函数的值从true改为false。因此,就像阅读一句话一样阅读测试代码,这个测试表明"我们期望false的值是false",而实际上它确实是如此。因此我们的测试运行将通过,如下面的截图所示:

 (命令行输出显示了一个成功的Jest测试运行)

 

在这里,我们可以看到一个成功的测试运行的结果。Jest会通过在每个测试旁边标记绿色勾号来显示我们运行了哪些测试。我们还可以获得有关运行了多少个测试套件、运行了多少个测试以及整个测试运行花费了多长时间的信息。

 

标签:Typescript,false,Jest,测试,测试运行,ts,TDD,jest
From: https://www.cnblogs.com/bisslot/p/17719688.html

相关文章

  • Typescript 测试驱动开发 TDD (4)
    JestJest是一个简单易配置且功能强大的JavaScript单元测试框架,它构建在流行的Jasmine框架之上。Jasmine已经存在很长时间了,是一个成熟、功能齐全且广泛使用的测试框架。Jest通过使配置更加容易,并提供丰富的额外功能来增强Jasmine。Jest还可以并发运行测试,这显著加快了测试套件运......
  • k8s部署mongodb 测试
    挂载mongodb配置文件的cm[root@master01kx]#catmongodb-config.yamlapiVersion:v1kind:ConfigMapmetadata:name:mongo-config-producenamespace:chongqinglabels:app:mongo-producedata:mongodb.conf:|-dbpath=/data/middleware-data/mongo......
  • 专业第三方软件检测机构验收测试怎么做?
    验收测试的目的一、专业第三方软件检测机构验收测试怎么做?受业主委托,以第三方立场,在信息系统集成调试后、交付运行前,通过人工或工具测试手段,从系统功能和非功能需求设计方面,对程序的实际与预期输出进行比较验证,发现差别和错误,客观评估和衡量软件的质量是否满足预期要求。二、......
  • 回归测试策略指南
    作为一名软件测试人员,我们需要进行回归测试,以确保代码修改后软件的既有功能不会受到影响。那么如何设计和执行有效的回归测试策略呢?本文将为大家提供一些专业建议。明确回归测试的范围回归测试不可能也不需要对软件做完整测试,要识别出核心功能和关键业务场景,将回归测试的范围控......
  • greenplum到oracle的dbi_link的配置、调试与测试
    为了解决greenplum到oracle的数据库的数据互联互通的问题,特提供的dbi_link做了研究与测试,dbi_link的基本原理是用Perl的DBI和相应数据库的DBD来访问异构数据库,实现数据的互访与数据传递,这次研究的目的是想解决oracle数据仓库到greenplum的数据传输的问题,这次的研究大概可以分为以......
  • selenium自动化测试-登录网站用户
    昨天学习了selenium自动化测试工具的入门,知道了Selenium是用于自动化控制浏览器做各种操作,打开网页,点击按钮,输入表单等等。今天学习通过selenium自动化测试工具自动登录某网站用户操作。第一步:确定目标网址比如:天天基金网站登录页面"https://login.1234567.com.cn/login"第二......
  • Typescript 测试驱动开发 TDD (1)
    在JavaScript开发的现代世界中,有许多不同的前端框架可供我们用来编写应用程序,从旧的框架如Backbone.js到较新的Angular、React和Vue等。这些框架通常使用模型视图控制器(MVC)设计模式或其变体之一,例如模型视图表现器(MVP)或模型视图视图模型(MVVM)。当将这组模式一起讨论时,它们被一些人......
  • 企业诊断屋:二手车交易平台 APP 如何用 AB 测试赋能业务
    更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群2023年汽车行业新车市场低靡,由新车降价引发的车辆价格波动很快传导到二手车市场,二手车的交易也受到了冲击,收车验车更加谨慎,诸多二手交易平台想要保障平台的交易率也变得竞争激烈。二手车......
  • Restful API 接口测试工具 HTTP Client
    HTTPClient软件项目开发有很多RESTfulAPI接口需要运行来验证效果,所以急需一款高效的接口测试工具。可能大家用的比较多的是swagger或者postman,这2个确实不错,不过这里我给大家推荐一种更简单的接口测试工具。这款工具就是idea中的自带的:HTTPClient,这款工具特别好用,主......
  • Linux/Unix-CPU-SuperPI-Unixbench性能测试
    测试服务器CPU单核及多核SuperPI圆周率测试real和user值,SuperPI是利用CPU的浮点运算能力来计算出π(圆周率),测试系统稳定性和测试CPU计算完后特定位数圆周率所需的时间;及Unixbench单核及多核测试Index得分,测试方法如下:类型预期结果测试步骤SuperPI测试(单核)......