首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Protractor中的REST端点进行异步调用以获取测试数据的正确方法?

从Protractor中的REST端点进行异步调用以获取测试数据的正确方法?
EN

Stack Overflow用户
提问于 2019-01-18 15:29:56
回答 1查看 511关注 0票数 0

我们正在使用Protractor进行端到端UI测试,并使用Jasmine作为BDD框架。我们需要UI的文本来验证来自REST API的数据,我们正在使用Axios!!这是正确的方法吗?示例代码如下:

代码语言:javascript
复制
import axios from "axios";

describe("Some test for ", () => {

beforeEach(function(done) {
  axios
    .get(
     "******************"
    )
    .then(response => {
      data_file = response.data;
      done();
    });
});

it("some spec ", done => {
  expect($('#someId').getText()).toBe(data_file.someData);
  done();
});

});

我们可以在Protractor中使用Chakram而不是Jasmine中的Axios来获取数据吗?

如果上述方法是错误的,那么针对来自REST端点的数据测试UI的正确方法是什么?(Chai + Mocha + Chakram + Protractor)或其他什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-20 05:15:59

可能会吧。done()回调告诉Jasmine您正在执行一个异步任务;但是,您应该小心捕捉错误。

添加到done.fail

代码语言:javascript
复制
import axios from "axios";

describe("Some test for ", () => {

  beforeEach(function(done) {
    axios
      .get(
       "******************"
      )
      .then(response => {
        data_file = response.data;
        done();
      })
      // if the above fails to .get, then we should catch here and fail with a message
      .catch(error => {
        done.fail('axios.get failed to execute');
      });
  });

更好的方法。使用异步/等待

在您的量角器配置中,您需要添加SELENIUM_PROMISE_MANAGER: false以启用异步/等待。这将要求你等待所有的承诺。

代码语言:javascript
复制
import axios from "axios";

describe("Some test for ", () => {

  beforeEach(async () => {
    try {
      const data_file = await axios.get("******************").data;
    } catch (e) {
      console.error('axios.get failed to execute');
      throw e;  // throwing errors should fail the spec.
    }
  });

  it("some spec ", async () => {
    // .getText returns a Promise<string> so you'll need to await it
    // to get the string value.
    expect(await $('#someId').getText()).toBe(data_file.someData);
  });  
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54249463

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档