使用 ava 测试 promise
Testing promise with ava
我试着测试这个class
class Scraper {
async run() {
return await nightmare
.goto(this.url)
.wait('...')
.evaluate(()=>{...})
.end
}
}
我的测试是这样的:
test('Scraper test', t => {
new Scraper().run().then(() => {
t.is('test', 'test')
})
})
测试失败:
Test finished without running any assertions
编辑
github 上的存储库:https://github.com/epyx25/test
测试文件:https://github.com/epyx25/test/blob/master/src/test/scraper/testScraper.test.js#L12
您必须使用 assert-planning 来阻止测试,直到 Promise
通知 lambda,例如:
test('Scraper test', t => {
t.plan(1);
return new Scraper().run().then(() => {
t.is('test', 'test')
})
})
或
test.cb('Scraper test', t => {
t.plan(1);
new Scraper().run().then(() => {
t.is('test', 'test')
t.end()
})
})
你需要return这个承诺。不需要断言计划:
test('Scraper test', t => {
return new Scraper().run().then(() => {
t.is('test', 'test')
})
})
或者更好的是,使用异步测试:
test('Scraper test', async t => {
await new Scraper().run()
t.is('test', 'test')
})
我试着测试这个class
class Scraper {
async run() {
return await nightmare
.goto(this.url)
.wait('...')
.evaluate(()=>{...})
.end
}
}
我的测试是这样的:
test('Scraper test', t => {
new Scraper().run().then(() => {
t.is('test', 'test')
})
})
测试失败:
Test finished without running any assertions
编辑
github 上的存储库:https://github.com/epyx25/test
测试文件:https://github.com/epyx25/test/blob/master/src/test/scraper/testScraper.test.js#L12
您必须使用 assert-planning 来阻止测试,直到 Promise
通知 lambda,例如:
test('Scraper test', t => {
t.plan(1);
return new Scraper().run().then(() => {
t.is('test', 'test')
})
})
或
test.cb('Scraper test', t => {
t.plan(1);
new Scraper().run().then(() => {
t.is('test', 'test')
t.end()
})
})
你需要return这个承诺。不需要断言计划:
test('Scraper test', t => {
return new Scraper().run().then(() => {
t.is('test', 'test')
})
})
或者更好的是,使用异步测试:
test('Scraper test', async t => {
await new Scraper().run()
t.is('test', 'test')
})