【发布时间】:2017-06-20 03:39:28
【问题描述】:
大家好,我在测试异步函数时遇到了麻烦,其中包含对内部服务器的获取。我正在使用 mocha 和 chai-as-promised。失败的测试是:'返回正确的标题'我想我将不得不模拟 fetch 调用或其他东西,或者问题是我正在调用异步函数,并且当我正在执行单元测试时,我不要解决承诺。我不太确定如何实现这一目标。你能帮帮我吗?
要测试的函数是:
import React from 'react'
import Technologies from './Technologies'
import fetch from '../../core/fetch'
let title= 'Technologies'
export default {
path: '/technologies',
async action () {
const resp = await fetch('/graphql', {
method: 'post',
headers: {
Accept: 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify({
query: '{technologies{name,icon,url}}',
}),
credentials: 'include',
})
let { data, } = await resp.json()
if (!data || !data.technologies) throw new Error('Failed to load technologies.')
return {
title:title,
component: <Technologies title={title} technologies={data.technologies} />,
}
},
}
还有我的测试:
describe('Route', () => {
it('has right path', () => {
expect(Route.path === '/technologies').to.be.true
})
it('return proper title', () => {
const title = 'Technologies'
expect(Route.action().title === title).to.be.true
})
})
【问题讨论】:
标签: javascript promise mocha.js chai