更改赛普拉斯QraphQL端点测试中的路由数据

时间:2018-12-01 12:09:28

标签: javascript testing graphql integration-testing cypress

我有一个使用QraphQL的Angular应用程序。 我在柏树上写了一个测试,看起来像这样:

it('should do something', () => {
  cy.server();
  cy.route('POST', '/graphql', 'fixture:data1.json');
  // data is loaded from the endpoint to populate the page
  cy.visit('http://localhost:3000/#/something/somethingElse');

  // when the button is clicked, the same endpoint is called again,
  // but now I need it to deliver some other data.
  cy.get('button')
    .click();
});

有人可以为我提供设置方法吗? 预先感谢

1 个答案:

答案 0 :(得分:0)

也许您可以使用easygraphql来解决这一挑战!可以使用多个软件包:

  1. easygraphql-now:您可以在package.json上创建一个脚本,该脚本将运行"easygraphql-now schema.gql --graphiql --local -p=7000",并在其中传递架构路由,本地和graphiql标志以及端口...因此,当您运行它时;它将为传递的架构创建一个模拟服务器,因此您的Angular应用程序将向服务器发出请求,该服务器将响应您的查询模拟。这是一个有用的post

  2. easygraphql-mock:如果您想返回该类型的完整模拟,则可以使用此包,并且不必为此创建每种夹具。

  3. easygraphql-tester:类似于easygraphql-mock,但不同之处在于您可以返回查询的模拟,请检查docs

如果您决定使用easygraphql来解决此问题,请随时在存储库上创建示例,here就是一个问题,无法使用赛普拉斯创建示例