为什么我得到 cy.intercept is not a function?
Why do I get cy.intercept is not a function?
我正在尝试拦截 POST 请求,但出现以下错误:
enter image description here
这是我的测试文件代码:
enter image description here
我发现了一个类似的问题:
该问题已通过将 cypress 版本升级到 v5.3 以上解决。但是我已经有了 cypress 版本 6.14.15。该错误似乎只在 .Then()
部分复制,这很奇怪,因为 cy.intercept 函数是在前一行代码中调用的,而不是在 .Then()
部分中调用的。问题到底出在哪里?
编辑:
这是 package.json 文件
{
"name": "test-project-v2",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"test:unit": "vue-cli-service test:unit",
"test:e2e": "vue-cli-service test:e2e",
"lint": "vue-cli-service lint"
},
"dependencies": {
"axios": "^0.24.0",
"core-js": "^3.6.5",
"vue": "^3.0.0",
"vuex": "^4.0.0-0"
},
"cypress-cucumber-preprocessor": {
"nonGlobalStepDefinitions": true
},
"devDependencies": {
"@vue/cli-plugin-babel": "~4.5.0",
"@vue/cli-plugin-e2e-cypress": "~4.5.0",
"@vue/cli-plugin-eslint": "~4.5.0",
"@vue/cli-plugin-unit-jest": "~4.5.0",
"@vue/cli-plugin-vuex": "~4.5.0",
"@vue/cli-service": "~4.5.0",
"@vue/compiler-sfc": "^3.0.0",
"@vue/eslint-config-prettier": "^6.0.0",
"@vue/test-utils": "^2.0.0-0",
"babel-eslint": "^10.1.0",
"eslint": "^6.7.2",
"eslint-plugin-prettier": "^3.3.1",
"eslint-plugin-vue": "^7.0.0",
"prettier": "^2.2.1",
"sass": "^1.26.5",
"sass-loader": "^8.0.2",
"typescript": "~3.9.3",
"vue-jest": "^5.0.0-0"
},
"eslintConfig": {
"root": true,
"env": {
"node": true
},
"extends": [
"plugin:vue/vue3-essential",
"eslint:recommended",
"@vue/prettier"
],
"parserOptions": {
"parser": "babel-eslint"
},
"rules": {},
"overrides": [
{
"files": [
"**/__tests__/*.{j,t}s?(x)",
"**/tests/unit/**/*.spec.{j,t}s?(x)"
],
"env": {
"jest": true
}
}
]
},
"browserslist": [
"> 1%",
"last 2 versions",
"not dead"
],
"jest": {
"preset": "@vue/cli-plugin-unit-jest",
"transform": {
"^.+\.vue$": "vue-jest"
}
}
}
我会像这样断言 cy.intercept
路由:
cy.wait('@dialog').should(response => {
expect(response.response.statusCode).to.eq(200);
});
您在 respose.body
中的这段代码中也有拼写错误:
cy.wait('@dialog').its('respose.body').should('have.Congrats');
我还会检查您的 package.json
和当前安装的 Cypress
版本。请注意 cy.intercept()
是在 Cypress 6.0.0
中引入的。
我正在尝试拦截 POST 请求,但出现以下错误:
enter image description here
这是我的测试文件代码:
enter image description here
我发现了一个类似的问题:
该问题已通过将 cypress 版本升级到 v5.3 以上解决。但是我已经有了 cypress 版本 6.14.15。该错误似乎只在 .Then()
部分复制,这很奇怪,因为 cy.intercept 函数是在前一行代码中调用的,而不是在 .Then()
部分中调用的。问题到底出在哪里?
编辑: 这是 package.json 文件
{
"name": "test-project-v2",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"test:unit": "vue-cli-service test:unit",
"test:e2e": "vue-cli-service test:e2e",
"lint": "vue-cli-service lint"
},
"dependencies": {
"axios": "^0.24.0",
"core-js": "^3.6.5",
"vue": "^3.0.0",
"vuex": "^4.0.0-0"
},
"cypress-cucumber-preprocessor": {
"nonGlobalStepDefinitions": true
},
"devDependencies": {
"@vue/cli-plugin-babel": "~4.5.0",
"@vue/cli-plugin-e2e-cypress": "~4.5.0",
"@vue/cli-plugin-eslint": "~4.5.0",
"@vue/cli-plugin-unit-jest": "~4.5.0",
"@vue/cli-plugin-vuex": "~4.5.0",
"@vue/cli-service": "~4.5.0",
"@vue/compiler-sfc": "^3.0.0",
"@vue/eslint-config-prettier": "^6.0.0",
"@vue/test-utils": "^2.0.0-0",
"babel-eslint": "^10.1.0",
"eslint": "^6.7.2",
"eslint-plugin-prettier": "^3.3.1",
"eslint-plugin-vue": "^7.0.0",
"prettier": "^2.2.1",
"sass": "^1.26.5",
"sass-loader": "^8.0.2",
"typescript": "~3.9.3",
"vue-jest": "^5.0.0-0"
},
"eslintConfig": {
"root": true,
"env": {
"node": true
},
"extends": [
"plugin:vue/vue3-essential",
"eslint:recommended",
"@vue/prettier"
],
"parserOptions": {
"parser": "babel-eslint"
},
"rules": {},
"overrides": [
{
"files": [
"**/__tests__/*.{j,t}s?(x)",
"**/tests/unit/**/*.spec.{j,t}s?(x)"
],
"env": {
"jest": true
}
}
]
},
"browserslist": [
"> 1%",
"last 2 versions",
"not dead"
],
"jest": {
"preset": "@vue/cli-plugin-unit-jest",
"transform": {
"^.+\.vue$": "vue-jest"
}
}
}
我会像这样断言 cy.intercept
路由:
cy.wait('@dialog').should(response => {
expect(response.response.statusCode).to.eq(200);
});
您在 respose.body
中的这段代码中也有拼写错误:
cy.wait('@dialog').its('respose.body').should('have.Congrats');
我还会检查您的 package.json
和当前安装的 Cypress
版本。请注意 cy.intercept()
是在 Cypress 6.0.0
中引入的。