有没有办法在超测中设置默认值?

Posted

技术标签:

【中文标题】有没有办法在超测中设置默认值?【英文标题】:Is there any way to set defaults in supertest? 【发布时间】:2016-07-16 12:46:11 【问题描述】:

我正在使用 supertest 模块来测试我的 Rest API。我的 API 一直在发送 JSON。所以我正在为所有和每个测试做.expect('Content-Type', /json/)!我一遍又一遍地重复!

这是我的一些代码

it('should list ALL permissions on /permissions GET', (done)=> 
    request(app)
        .get( permissionsURL )
        .expect(200)
        .expect('Content-Type', /json/)
        .end((err, res)=> 
            var permissions = res.body;
            permissions.should.be.an.instanceOf(Array);
            var permission = permissions[0];
            permission.should.be.json;
            permission.should.have.properties(['name', '_id']);
            permission.name.should.be.a.String();
            // permission.should.not.have.property('__v');

            done(err);
        );
);

it('should list a SINGLE permission on /permissions/<id> GET', (done)=> 
    request(app)
        .get( permissionsURL +savedPermissionId )
        .expect(200)
        .expect('Content-Type', /json/)
        .end((err, res)=> 
            var permission = res.body;
            permission.should.be.json;
            permission.should.have.properties(['name', '_id']);
            permission.name.should.be.a.String();
            // permission.should.not.have.property('__v')

            done(err);
        );
);

还有其他方法吗?有些人想像superagent-defaults 模块但对于超级测试而不是超级代理?或者是否可以将 superagent-defaults 与 supertest 一起使用?

感谢您提供的任何帮助。 :)

【问题讨论】:

【参考方案1】:

无法为所有测试设置此项。但是,如果您可以考虑为您希望返回 JSON 的每个端点设置一套测试,并且只在其中调用这个 expect,那么您可以省略所有其他测试的 expect。

【讨论】:

以上是关于有没有办法在超测中设置默认值?的主要内容,如果未能解决你的问题,请参考以下文章

如何在liquibase中设置当月第一个日期和下个月的默认值?

在Java中设置数组值[重复]

Xamarin.Forms:有没有办法在xaml中设置派生样式的默认字体(系列)?

如何在 select2 yii2 中设置选定值或默认值?

为啥表单提交没有捕获我在输入标签中设置的只读默认值?

MySQL使用默认值与在查询中设置值是不是有任何性能差异?