Javascript Cypress存根似乎会从实际服务器产生响应

Javascript Cypress存根似乎会从实际服务器产生响应,javascript,testing,stubbing,cypress,Javascript,Testing,Stubbing,Cypress,在现有项目中试用Cypress时,我遇到了路由存根响应的问题。本文档文章中解释了这一概念: 下面是一个最小的非工作示例。我试图获取一个空对象作为响应主体: description('新事件页',()=>{ 它('用存根响应',()=>{ cy.server(); cy.route('/dummypath',{}); 请求('GET','/dummypath'); }); }); 存根路径在GUI中清晰显示: 但答案是404: 。。。与以下机构合作: <!DOCTYPE html>

在现有项目中试用Cypress时,我遇到了路由存根响应的问题。本文档文章中解释了这一概念:

下面是一个最小的非工作示例。我试图获取一个空对象作为响应主体:

description('新事件页',()=>{
它('用存根响应',()=>{
cy.server();
cy.route('/dummypath',{});
请求('GET','/dummypath');
});
});
存根路径在GUI中清晰显示:

但答案是404:

。。。与以下机构合作:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Cannot GET /dummypath</pre>
</body>
对指定的url发出实际HTTP请求。在不希望加载实际应用程序的情况下,应使用此命令。例如,可能需要检查服务器上的端点

用于处理正在测试的应用程序中发出的HTTP请求

如果您想对在测试中的应用程序中发出的HTTP请求进行存根响应,则可能需要使用
cy.route()
.wait()
的组合。例如,为了确保在访问应用程序时,应用程序向
/dummypath
发出GET请求,并且对该请求的响应是存根
{}
,我们将编写:

对指定的url发出实际HTTP请求。在不希望加载实际应用程序的情况下,应使用此命令。例如,可能需要检查服务器上的端点

用于处理正在测试的应用程序中发出的HTTP请求

如果您想对在测试中的应用程序中发出的HTTP请求进行存根响应,则可能需要使用
cy.route()
.wait()
的组合。例如,为了确保在访问应用程序时,应用程序向
/dummypath
发出GET请求,并且对该请求的响应是存根
{}
,我们将编写:


谢谢这就解释了。顺便说一句,在阅读文档时,这些信息对我来说并不明显。我已尝试将信息添加到cy.request和cy.route上的文档中。请参阅此PR:@jennifer如果内容类型为text/html,响应的结构应该是什么?如果我创建一个简单的存根路由,比如
cy.route(“GET”,/thankyou\u page,response.body)
它会从服务器返回实际的html,而不是我传递的html。谢谢!这就解释了。顺便说一句,在阅读文档时,这些信息对我来说并不明显。我已尝试将信息添加到cy.request和cy.route上的文档中。请参阅此PR:@jennifer如果内容类型为text/html,响应的结构应该是什么?如果我创建一个简单的存根路由,比如
cy.route(“GET”,/thankyou\u page,response.body)
它会从服务器返回实际的html,而不是我传递的html。
 CypressError: cy.request() failed trying to load:

http://localhost:3002/dummypath

We attempted to make an http request to this URL but the request failed without a response.

We received this error at the network level:

  > Error: connect ECONNREFUSED 127.0.0.1:3002

-----------------------------------------------------------

The request we sent was:

Method: GET
URL: http://localhost:3002/dummypath

-----------------------------------------------------------

Common situations why this would fail:
  - you don't have internet access
  - you forgot to run / boot your web server
  - your web server isn't accessible
  - you have weird network configuration settings on your computer
describe('The new event page', () => {

  it('responds with the stub', () => {
    cy.server();
    cy.route('/dummypath', {}).as('getDummy');
    cy.visit('http://localhost:3002');         // the url to visit in your app
    cy.wait('@getDummy').its('responseBody')
      .should('be.an', 'object')
      .and('be.empty');
  });

});