javascript - Supertest 中的负面断言

标签 javascript node.js supertest

初学者使用 Javascript 进行测试。我正在使用摩卡,但路易斯明智地表示,这个问题并不是摩卡特有的。我有一个 Node 应用程序,其中一些页面对匿名用户可见,而有些页面如果您未登录,则不应该看到。所以我有一个非常简单的开始,

describe('User Access', function(){
it('should allow anyone to access the help desk (about page)', function(done){
  request(host)
  .get('/')
  .expect(200, done);
}),
it('should allow anyone to access the contact page', function(done){
  request(host)
  .get('/contact')
  .expect(200, done);
}),
//initially we were expecting 404, we need anything BUT 200.
it('should NOT allow anonymous user to access the Training Material page', function(done){
  request(host)
  .get('/training')
  .expect(404, done);
}),

等等

这最初是有效的。然而,开发人员已将不可用页​​面更改为 302 状态,并将这些页面重定向到 Web 应用程序的根目录。因此,为了让开发人员能够灵活地实现此限制,我想将其更改为否定断言。那么,使用 Mocha 语法,我如何“期望”响应不是 200?

最佳答案

docs here假设您可以传入一个给定响应对象的自定义断言函数,从该函数返回一个值将意味着断言失败,即;

.expect(function(res){
    if(res.status == 200){
        return "we dont like 200!";
    }
})

关于javascript - Supertest 中的负面断言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21414677/

相关文章:

javascript - 需要解决 "node running out of memory"错误的方法

javascript - 对重复元素触发 mouseenter 和 mouseleave

node.js - 是否可以等到ask方法返回响应

JavaScript onclick 条件表格单元格

javascript - 通过 postman 调用 Node api,响应为启用 javascript 错误

node.js - 如何正确地对 Joi Schemas 验证进行单元测试?

express - 测试 Express 应用程序时如何摆脱 supertest 的输出?

javascript - 在 TypeScript 中使用 super 测试 - 出现问题 "cannot invoke expression whose type lacks a call signature"

javascript - 如何捕获带有可选数量的字母/数字后跟可选逗号的组?

javascript - 自动完成 minChars 属性