![](/img/trans.png)
[英]What is the difference between React functional component <Message id> and js function formatMessage() and which one is better to use?
[英]What is the difference between fixtures and support files in Cypress? Which one is better to use?
fixtures和 support 文件都存储了 static 数据,对吧? 最好推荐使用什么?
fixtures
的一个用例可能是放置测试期间使用的 static 数据,例如 JSON 主体。
假设您需要存储一些您将经常使用的请求主体 JSON。 它不会有太大变化,也不需要通过测试来改变。 requestBody.json
可以存储在fixtures
,然后在测试规范中.json
然后在测试中使用。 cypress/fixtures/
中的文件并不意味着在测试中改变或动态:
const requestBody = require("../fixtures/requestBody.json");
describe('Test', () => {
it('should do something', () => {
cy.request({
method: 'GET',
url: myUrl,
body: requestBody
})....
support
的一个用例可能是在cypress/support/commands.js
中定义自定义命令。
假设您需要发送一个 header,其中包含一些您不想公开的数据,例如授权密钥。 您还需要对GET
方法进行硬编码,但您希望url
和body
保持动态。 可以在cypress/support/commands.js
中定义自定义命令:
Cypress.Commands.add('getRequestWithSecret', (url, body) => {
cy.request({
method: 'GET',
headers: {
Authorization: mySecretKey
},
url: url,
body: body
});
});
然后可以在代码中使用此自定义命令。 您可以在下面的示例中看到混合了 static 和动态内容。 正在导入的夹具,以及自定义命令。 getRequestWithSecret
是动态的,因为它正在接受输入。 cypress/support/index.js
和commands.js
在测试规范开始之前加载。 这非常有用,因为这意味着您可以添加可以在测试开始之前运行的脚本。 所以这些不需要在运行时导入到您的测试中。
const requestBody = require("../fixtures/requestBody");
describe('Test', () => {
it('should do something', () => {
cy.getRequestWithSecret({
url: myUrl,
body: requestBody
})....
两者都有不同的目的。 夹具用作 static 数据的外部片段,可由您的测试使用,而支持文件是放置可重用行为的好地方,例如您希望应用并可用于所有规范文件的自定义命令或全局覆盖。 为了更好地理解,我建议您阅读 cypress 官方文档https://docs.cypress.io/guides/core-concepts/writing-and-organizing-tests.html#Support-file
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.