WedX - журнал о программировании и компьютерных науках

Рекомендуемый способ импортировать функцию в спецификацию и разделять ценность между несколькими тестами в Cypress?

Мне нужно получить доступ к функции генератора случайных строк в моем файле спецификации, вызвать функцию и получить доступ к возвращаемому случайному значению во всех тестах в файле спецификации.

Каким будет рекомендуемый способ сделать это?

Изменить: немного подробнее о том, что я хочу сделать:

в начале спецификации я генерирую случайное число, используя его в качестве идентификатора для создания записи в 1-м тесте, найдите его и отредактируйте во 2-м тесте, удалите его в 3-м ...

12.02.2021

Ответы:


1

Еще проще, если ваша случайная функция является синхронной, вы можете просто добавить ее к объекту Cypress и напрямую использовать для тестирования.

Поместите это в cypress / support / index.js или в начало теста.

Cypress.userName = () => `User-${Math.floor(Math.random() * 100000)}`;

В тесте

describe('add, edit, delete a User', () => {

  const userName = Cypress.userName(); // same random name for all tests in this block

  it('add a user', () => {
    cy.get('.username').type(userName);
    cy.get('Submit').click();
  })

  it('search for the user', () => {
    cy.get('.search').type(userName);
    cy.get('.found-user').should('contain', userName);
  })

  it('rejects an unknown user', () => {
    const anotherUser = Cypress.userName(); // new name provided here
    cy.get('.search').type(anotherUser);  
    cy.get('.found-user').should('not.contain', anotherUser);  // not added yet
  })

})
  

В качестве бонуса вам не нужно проявлять особую осторожность, чтобы использовать it('...', function() { все время, он работает с форматом стрелочной функции it('...', () => {.

12.02.2021

2

Вы можете получить случайные строки, которые больше подходят для использования, используя Faker.js.

Образец взят из этой статьи. Использование Faker для создания данные для ваших тестов Cypress

/cypress/plugins/index.js

const faker = require("faker");

module.exports = (on, config) => {
    on("task", {
        freshUser() {
            user = {
                username: faker.name.firstName(),
                email: faker.internet.email(),
                password: "SuperSecret",
            };
            return user;
        },
    });
};

В тесте

/// <reference types="Cypress" />

let user;

describe("Docket Post Test", () => {
    before(function () {
        cy.task("freshUser").then((object) => {
            user = object;
        });
    });

    it("Register a new user", () => {
        cy.apiRegister({
            username: user.username,
            email: user.email,
            password: user.password,
        });
    });
});

Полное репо Кевина находится здесь.

12.02.2021
Новые материалы

Как создать диаграмму градиентной кисти с помощью D3.js
Резюме: Из этого туториала Вы узнаете, как добавить градиентную кисть к диаграмме с областями в D3.js. Мы добавим градиент к значениям SVG и применим градиент в качестве заливки к диаграмме с..

Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

Объяснение документов 02: BERT
BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

Как проанализировать работу вашего классификатора?
Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

Работа с цепями Маркова, часть 4 (Машинное обучение)
Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..


Для любых предложений по сайту: wedx@cp9.ru