如何使用 Jest 测试 nestjs 中的服务

前言

NestJS 是现代化的 Node.js 框架,它采用了 TypeScript 和面向对象编程的方法,使得开发者能够更加高效地开发和维护大型应用程序。而 Jest 是 Facebook 开发的一款测试框架,它具备简单易用和功能强大两个优点,并且非常适合在 NestJS 中使用。本文将会介绍如何在 NestJS 应用程序中使用 Jest 进行单元测试,并给出详细的指导和示例代码。

安装 Jest

我们需要先安装 Jest,可以使用 npm 或 yarn 安装:

--- ------- ---------- ----

或者

---- --- ----- ----

安装 Jest 后,我们需要在 package.json 文件中增加以下内容:

-
  ---------- -
    ------- ------
  -
-

这样我们就可以使用 npm test 或者 yarn test 命令来运行测试了。

编写测试用例

我们需要在文件夹中创建一个新的文件夹 __tests__,在这个文件夹中,我们可以创建一个新的测试用例文件 my.service.spec.ts

下面这个例子将展示如何编写一个测试用例:

------ - ----- ------------- - ---- ------------------
------ - --------- - ---- ----------------

--------------------- -- -- -
  --- -------- ----------

  ---------------- -- -- -
    ----- ------- ------------- - ----- --------------------------
      ---------- ------------
    -------------

    ------- - ---------------------------------
  ---

  ---------- -- --------- -- -- -
    ------------------------------
  ---

  ---------- ------ ------ -- ------- -- -- -
    -------------------------------------------------------
  ---
---

在这个测试用例中,我们通过 Test.createTestingModule 方法创建一个测试模块,同时在模块中注入 MyService,并在模块编译后从模块中获取 MyService 的实例。然后我们编写了两个测试用例:测试是否能够正确地定义服务实例和测试服务是否能够正确地返回项目数量。我们可以使用 expect 函数来进行测试,并可以调用不同的匹配器来验证结果。

运行测试

在执行测试之前,我们需要先编译 NestJS 应用程序。假设我们的 NestJS 应用程序的入口文件是 main.ts,可以使用以下命令启动应用程序:

--- --- -----

或者

---- -----

启动后,我们可以使用以下命令来运行测试:

--- ----

或者

---- ----

Jest 将会自动在 __tests__ 文件夹中搜索测试文件,并运行这些测试文件中的测试用例。在 NestJS 中使用 Jest,可以使用 supertest 模块来测试 HTTP 请求,也可以使用 @nestjs/microservices/testing 模块来测试微服务。

结论

本文介绍了如何在 NestJS 应用程序中使用 Jest 进行单元测试,并给出了详细的指导和示例代码。希望这篇文章可以帮助你更好地理解如何使用 Jest 测试 NestJS 中的服务,从而开发更加高效和健壮的应用程序。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/67388e6e317fbffedf114ea8