Jupyter AI

9 创建第一个Express应用之3.3 测试应用

📅 发表日期: 2024年8月15日

分类: 🚂Express.js 入门

👁️阅读: --

在前一章中,我们成功启动了我们的第一个 Express 服务器,现在我们将对其进行基本的测试,以确保它能够按照我们的预期工作。在本节中,我们会介绍如何通过不同的方法来测试我们的 Express 应用,包括手动测试和自动化测试。

手动测试

手动测试是验证我们的应用是否正常工作的一种直接方法。在本例中,我们将使用浏览器或命令行工具(如 curl)来访问我们之前创建的 GET 接口。

使用浏览器手动测试

假设您的应用运行在 http://localhost:3000,您可以在浏览器中输入以下 URL:

http://localhost:3000

如果一切正常,您应该会看到一个简单的欢迎信息,如:

Hello, World!

此时,您已经手动测试了您的 Express 应用。

使用 curl 命令手动测试

除了浏览器,您还可以使用 curl 在终端中测试您的应用。打开终端并输入:

curl http://localhost:3000

如果应用设置正确,您应该看到与浏览器中相同的 Hello, World! 输出。

自动化测试

对于更复杂的应用,手动测试可能不够高效,因此我们需要依靠自动化测试。这里我们将使用一个热门的测试框架 Mocha 和一个断言库 Chai 来进行自动化测试。

设置测试环境

首先,我们需要安装 MochaChai。在项目根目录下运行以下命令:

npm install mocha chai --save-dev

接下来,我们需要创建一个测试目录和文件。通常我们在项目根目录下创建一个 test 文件夹,并在其中创建一个测试文件,例如 app.test.js

您的项目结构应如下所示:

your-project/
├── node_modules/
├── package.json
├── app.js
└── test/
    └── app.test.js

编写测试代码

test/app.test.js 文件中,我们可以编写如下测试代码:

const chai = require('chai');
const chaiHttp = require('chai-http');
const app = require('../app'); // 引入我们的 Express 应用
const expect = chai.expect;

chai.use(chaiHttp);

describe('GET /', function() {
    it('应该返回 Hello, World!', function(done) {
        chai.request(app)
            .get('/')
            .end(function(err, res) {
                expect(res).to.have.status(200);
                expect(res.text).to.equal('Hello, World!');
                done();
            });
    });
});

在这个测试中,我们使用 chai-http 插件来发送一个 GET 请求到根路径 /,并验证返回的 HTTP 状态码是否为 200,以及返回的文本是否为 Hello, World!

运行测试

package.json 文件中,您需要添加一个测试脚本。例如:

"scripts": {
    "test": "mocha"
}

现在,您可以运行 npm test 来执行您的测试:

npm test

若一切正常,您应该看到类似如下的输出:

 GET /
   ✓ 应该返回 Hello, World!

  1 passing (10ms)

通过运行测试,您可以确认您的应用逻辑是正确的。

小结

在这一节中,我们通过手动测试和自动化测试两种方式对我们的 Express 应用进行了基本的测试。手动测试可以快速验证接口是否正常,而自动化测试则可以随着应用的迭代而高效地保证程序的稳定性。在接下来的章节中,我们将进入更复杂的内容,探索如何定义路由来处理不同的请求。

接下来,我们将在第四章中学习如何为应用定义路由,敬请期待!