Детокс - Как заставить работать предыдущую спецификацию до запуска новой спецификации, чтобы избежать повторяющихся шагов теста?

Итак, я написал тест, который регистрирует пользователя:

describe('Login', () => {

beforeEach(async () => {
    await device.reloadReactNative()
  })

  it('Should grant access to a user with valid credentials', async () => {
    test code
  })
})

И теперь я пишу новую спецификацию для выхода из системы пользователя, поэтому вместо того, чтобы снова писать тот же тестовый код, я хочу, чтобы спецификация входа выполнялась в рамках спецификации выхода из системы. Я думаю, что это будет выглядеть примерно так:

describe('Log Out', () => {

beforeEach(async () => {
    await device.reloadReactNative()
    it ('Should grant access to a user with valid credentials')
  })

  it('A User Logs Out', async () => {
    test code
  })

Как заставить Detox выполнить первый тест входа в систему, прежде чем переходить к новым шагам?

К сожалению, beforeEach ("Должен предоставить доступ пользователю с действительными учетными данными") не работает, поэтому в синтаксисе что-то отсутствует.

2 ответа

Это не имеет никакого отношения к Detox, это описание /it API связано с тем, кого вы используете. В любом случае, используйте функции:

describe('Login', () => {
  beforeEach(async () => {
    await device.reloadReactNative();
    await grantAccessToUserWithValidCredentials();
  });

  it('A User Logs Out', async () => {
    // here the app is ready for you specific log out use case 
  });

  async function grantAccessToUserWithValidCredentials() {
    //grant it
  }
});

Лучше всего использовать драйверы в своих тестах. Вы можете проверить эти слайды: http://slides.com/shlomitoussiacohen/testing-react-components

Другие вопросы по тегам