node.js - 如何测试我的 Express 应用程序的响应是否包含某些 HTML 标签/文本?

标签 node.js express mocha.js supertest

我正在运行一个 Express Node 服务器,并使用 Mocha 和 Supertest 来测试我的路由。

我希望能够测试我的一条 Express 路线的响应中是否存在某些文本,如下所示:

it('should display form text input', function(done) {
      request(app)
        .get('/')
        .end(function (err, res) {
          if (err) {
            return done(err);
          }
          res.text.should.include('class="text-input-wname');
          done();
        });
    });  

但是,当我运行此测试时,出现以下错误:

Uncaught TypeError: undefined is not a function

res.text 可以很好地打印到控制台。我知道 should.include() 是为了检查数组中是否存在某个元素,所以假设这可能行不通。

但是解析响应主体以检查某些文本是否存在的正确方法是什么?

最佳答案

您是否尝试过使用 match 断言,例如:

res.text.should.match(/class="text-input-wname/)

关于node.js - 如何测试我的 Express 应用程序的响应是否包含某些 HTML 标签/文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28909285/

相关文章:

javascript - 类型错误 : res is not a function

node.js - 使用 Mongoose 测试异步中间件功能

node.js - Deno 脚本与 Node.js 兼容吗?

node.js - Nodejs - 登录前端的用户数据

javascript - 首次登录时的设置页面,express.js

javascript - 如何在 Node js express 中添加密码检查中间件

reactjs - 测试 React Select 组件

javascript - 在这个 sinon.spy mocha 示例中是否有一种简单的方法来更改确认和警报

node.js - 使用 Google Compute Engine 连接到 Nodejs 中的 mongodb

Node.js、socket.io、require()