如何更改记录的属性与cypress.io分贝
我是新来的柏树,我不知道我该怎么做以下检查:我的情况:我有一个产品在数据库中,可以有状态:INSTOCK和OutOfStock和停产。如果产品是在“INSTOCK”状态,我应该能够将其分派给客户,如果在“OutOfStock” /“停产”我不应该能够派遣给顾客。随着API调用我可以将产品分派给客户。如果产品是在“INSTOCK”状态,API响应是200,如果没有响应是的StatusCode 400所以我的问题是:如何可以改变的分贝为每个测试的产品的状态,所以我可以检查每个的3个状态的(如果API返回正确的应答)?我知道如何检查API响应本身,但它不是我清楚如何改变产品的状态在数据库中,每个测试之前。
回答如下:不像@Maccurt,我会真正做到这一点,你提出的方式(改变DB),这样你就可以正确地测试E2E流。
而不是建立测试路线这将写入到数据库,您可以使用cy.task
交谈赛普拉斯亚军的节点的过程,可以直接写入到数据库。它会是这样的:
使用本示例中的Postgres(node-postgres)。
your-test.spec.js
describe("test", () => {
it("test", () => {
cy.task("query", {
sql: `
UPDATE product
SET status = $1
WHERE id = $2
`,
values: [ "InStock", 40 ]
});
// your cy assertions here
});
});
cypress/plugins/index.js
const pg = require("pg");
const pool = /* initialize your database connection */;
module.exports = ( on ) => {
on( "task", {
query ({ sql, values }) {
return pool.query( sql, values );
}
});
});
如何更改记录的属性与cypress.io分贝
我是新来的柏树,我不知道我该怎么做以下检查:我的情况:我有一个产品在数据库中,可以有状态:INSTOCK和OutOfStock和停产。如果产品是在“INSTOCK”状态,我应该能够将其分派给客户,如果在“OutOfStock” /“停产”我不应该能够派遣给顾客。随着API调用我可以将产品分派给客户。如果产品是在“INSTOCK”状态,API响应是200,如果没有响应是的StatusCode 400所以我的问题是:如何可以改变的分贝为每个测试的产品的状态,所以我可以检查每个的3个状态的(如果API返回正确的应答)?我知道如何检查API响应本身,但它不是我清楚如何改变产品的状态在数据库中,每个测试之前。
回答如下:不像@Maccurt,我会真正做到这一点,你提出的方式(改变DB),这样你就可以正确地测试E2E流。
而不是建立测试路线这将写入到数据库,您可以使用cy.task
交谈赛普拉斯亚军的节点的过程,可以直接写入到数据库。它会是这样的:
使用本示例中的Postgres(node-postgres)。
your-test.spec.js
describe("test", () => {
it("test", () => {
cy.task("query", {
sql: `
UPDATE product
SET status = $1
WHERE id = $2
`,
values: [ "InStock", 40 ]
});
// your cy assertions here
});
});
cypress/plugins/index.js
const pg = require("pg");
const pool = /* initialize your database connection */;
module.exports = ( on ) => {
on( "task", {
query ({ sql, values }) {
return pool.query( sql, values );
}
});
});