我刚开始使用赛普拉斯作为自动化测试框架。目前,我正在尝试使用赛普拉斯来实现基于GraphQL的API中的测试自动化。我可以调用api,毫无问题地获得响应,但是当我尝试使用“ Assert.Equal(” response variable“,” expected msg“)”进行断言时,我的断言仅出现在最后一个描述中,尽管我的所有描述都在然后以Test.js为例 有两个用断言描述,但只有最后一个显示
答案 0 :(得分:0)
测试异步运行,这使得testrunner的速度比实际结果的返回速度更快。
看看他们的异步接收方式.. async/await
或至少返回一个诺言可以成为您的朋友:
https://github.com/cypress-io/cypress-example-recipes/blob/master/examples/unit-testing__application-code/async-methods.js
如果您不喜欢async/await
,则您的上次测试可能如下所示:
it('ConsultaCredenciado por cnpj',function(){
return new Promise((resolve, _) => {
var client = require('graphql-client')({
url: 'apiURL/credenciadosplant/',
headers: {
Authorization: 'Bearer ' + token
}
})
client.query(
`query{
consultarCredenciado(cnpj :"123456456")
{
IdCredenciado
CNPJ
IdCredenciadoLegado
Email
}
}`,function(req,res){
if(res.status === 401){
throw new error('Not Authorized')
}
}).then(function(res){
console.log(res)
expect(res.data.consultarCredenciado[0].Email).to.equal('aaaaa@aaaaaa.com')
resolve(true);
})
});
});