Polymer 如何使用聚合铁ajax编写API测试

Polymer 如何使用聚合铁ajax编写API测试,polymer,mocha.js,chai,sinon,Polymer,Mocha.js,Chai,Sinon,我试图生成一个iron ajax请求,并使用Mocha测试套件在Polymer 2.x中对其响应进行测试 但是,在运行此测试时,我遇到以下错误: 无法读取未定义上下文的属性“generateRequest”。在我的测试中。html:25 商店目录 套件('shop-catalogs tests',()=>{ var-ajax; 测试('检查AJAX响应',()=>{ let request=ajax.generateRequest(); 请求。完成。然后(响应=>{ 控制台日志(响应); })

我试图生成一个
iron ajax
请求,并使用Mocha测试套件在Polymer 2.x中对其响应进行测试

但是,在运行此测试时,我遇到以下错误:

无法读取未定义上下文的属性“generateRequest”。在我的测试中。html:25


商店目录
套件('shop-catalogs tests',()=>{
var-ajax;
测试('检查AJAX响应',()=>{
let request=ajax.generateRequest();
请求。完成。然后(响应=>{
控制台日志(响应);
})
});
});
如何在这个框架中发出AJAX请求并处理响应?

我建议使用它。它还将发送一个ajax调用,并且是浏览器的本机调用


<html> 
<head>
  <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1.0, user-scalable=yes">
  <title>shop-catalogs</title>

  <script src="/bower_components/webcomponentsjs/webcomponents-lite.js"></script>
  <script src="/bower_components/web-component-tester/browser.js"></script>
  <script src="/bower_components/web-component-tester/data/a11ySuite.js"></script>

  <!-- Import the element(s) to test -->
  <script src="/bower_components/mocha/mocha.js"></script>

</head>
<body>
  <script>
    suite('shop-catalogs tests', () => {
      test('checking for AJAX response', (done) => {
        fetch("https://api.com/test/endpoint", {
            headers: {"Authorization": "Bearer api_access_token"}
        }).then(res => {
            assert.equal(res.status, 200)
            return res.json()
        })
        .finally(res=>{ 
            console.log(res)
            done()//async test needs to tell when done 
        })
      });

    });
  </script>

</body>
</html>

商店目录
套件('shop-catalogs tests',()=>{
测试('检查AJAX响应',(完成)=>{
取回(“https://api.com/test/endpoint", {
标头:{“授权”:“承载api\u访问\u令牌”}
})。然后(res=>{
断言相等(res.status,200)
return res.json()
})
.finally(res=>{
console.log(res)
done()//异步测试需要告知何时完成
})
});
});
我建议使用它。它还将发送一个ajax调用,并且是浏览器的本机调用


<html> 
<head>
  <meta name="viewport" content="width=device-width, minimum-scale=1.0, initial-scale=1.0, user-scalable=yes">
  <title>shop-catalogs</title>

  <script src="/bower_components/webcomponentsjs/webcomponents-lite.js"></script>
  <script src="/bower_components/web-component-tester/browser.js"></script>
  <script src="/bower_components/web-component-tester/data/a11ySuite.js"></script>

  <!-- Import the element(s) to test -->
  <script src="/bower_components/mocha/mocha.js"></script>

</head>
<body>
  <script>
    suite('shop-catalogs tests', () => {
      test('checking for AJAX response', (done) => {
        fetch("https://api.com/test/endpoint", {
            headers: {"Authorization": "Bearer api_access_token"}
        }).then(res => {
            assert.equal(res.status, 200)
            return res.json()
        })
        .finally(res=>{ 
            console.log(res)
            done()//async test needs to tell when done 
        })
      });

    });
  </script>

</body>
</html>

商店目录
套件('shop-catalogs tests',()=>{
测试('检查AJAX响应',(完成)=>{
取回(“https://api.com/test/endpoint", {
标头:{“授权”:“承载api\u访问\u令牌”}
})。然后(res=>{
断言相等(res.status,200)
return res.json()
})
.finally(res=>{
console.log(res)
done()//异步测试需要告知何时完成
})
});
});

这太棒了。非常感谢。将两个
链接在一起的目的是什么?不只是我的编码风格。我想更好的办法是使用finally,而不是使用finally,这样即使ajax失败,测试也会结束。此外,我会在第一个块中进行断言,比如检查http状态代码,以及结果是否符合我的预期。谢谢你的提示!我刚开始写测试,所以得到这样的反馈很好:)。这太棒了。非常感谢。将两个
链接在一起的目的是什么?不只是我的编码风格。我想更好的办法是使用finally,而不是使用finally,这样即使ajax失败,测试也会结束。此外,我会在第一个块中进行断言,比如检查http状态代码,以及结果是否符合我的预期。谢谢你的提示!我刚开始写测试,所以能得到这样的反馈很好:)。