【发布时间】:2017-08-10 09:57:13
【问题描述】:
我正在对我的流星应用程序的出版物进行单元测试。我需要更改超时间隔,所以我添加了this.timeout(5000)。但这给了我错误
Error: this.error is not a function
at [object Object]._onTimeout
来自我的发布文件的if (!this.userId) { return this.error() }。
如何解决这个问题?
如您所见,如果用户未登录,则发布应引发错误。我想测试这个预期的错误。
test.js
import { expect } from 'meteor/practicalmeteor:chai'
import { PublicationCollector } from 'meteor/johanbrook:publication-collector'
describe('Publication', () => {
it('should not return data', function (done) {
this.timeout(5000)
const collector = new PublicationCollector()
collector.collect('list', (collections) => {
expect(collections.collection).to.be.undefined
done()
})
})
})
server/publication.js
Meteor.publish('list', function (id) {
if (!this.userId) { return this.error() }
return Collection.find({})
})
【问题讨论】:
-
error函数定义在哪里?
标签: javascript unit-testing meteor this chai