赛普拉斯的最新测试显示了所有断言

时间:2020-02-18 18:07:10

标签: node.js testing graphql cypress assertion

我刚开始使用赛普拉斯作为自动化测试框架。目前,我正在尝试使用赛普拉斯来实现基于GraphQL的API中的测试自动化。我可以调用api,毫无问题地获得响应,但是当我尝试使用“ Assert.Equal(” response variable“,” expected msg“)”进行断言时,我的断言仅出现在最后一个描述中,尽管我的所有描述都在然后以Test.js为例 有两个用断言描述,但只有最后一个显示 enter image description here

1 个答案:

答案 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);
    })
  });
});