如何测试我的 Express 应用程序的响应是否包含某些 HTML 标签/文本?
How can I test if my Express app's response contains certain HTML tags / text?
我正在 运行 连接 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/)
我正在 运行 连接 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/)