Если вы посмотрите на документы Cypress, использование after
не рекомендуется - Cypress Docs . Я бы предостерег от настройки данных в глобальном масштабе, будет ли она вам нужна для каждого теста? Если в какой-то момент вам нужно будет вводить данные для каждого теста, будет ли это противоречить этим глобальным данным? Вы можете сделать что-то подобное для каждого теста:
describe('Our test suite', function() {
beforeEach(function () {
cy.then(async () => {
await MyDatabaseService.resetdata()
await MyDatabaseService.createSomeData()
});
});
it('should be true', function() {
//Some test with some action followed by an assertion
})
})
Мне также пришлось вложить несколько тестов, как указано ниже, когда для конкретных c тестов нужны конкретные данные c (извините, если некоторые из форматирование здесь немного, надеюсь, это будет иметь смысл!):
describe('Our test suite', function() {
beforeEach(function () {
cy.then(async () => {
await MyDatabaseService.resetdata()
await MyDatabaseService.createSomeData()
});
});
it('should be true', function() {
//Some test with some action followed by an assertion
});
describe('These tests need more data, this is a nested describe', function () {
before(function () {
cy.then(async () => {
await MyDatabaseService.addSomeMoreData()
});
it('this test uses the extra data', function () {
// Do some funky tests here
});
});
});
})
Для второго теста, приведенного выше, тест запустит все три действия базы данных.
Upshot есть, если Вы очищаете данные до , когда вы запускаете свои тесты, тогда это проясняет ситуацию.
Надеюсь, это поможет. Я новичок в Cypress, и может быть трудно отказаться от тех (плохих?) Привычек, которые мы использовали в Selenium в течение некоторого времени!