Это нормально, если юнит-тесты зависят друг от друга? - PullRequest
0 голосов
/ 22 октября 2018

Что если тесты разделяют и видоизменяют какое-то общее состояние, и их логика зависит от предыдущих тестов?Это приемлемая практика?Простой код например (js):

describe('Some tests', () => {
  const state = {
    value: 'test'
    addMe() {
      this.value = this.value + ' me'
    }
    addPlease() {
      this.value = this.value + ', please'
    }
  }

  it('Some test', () => {
    state.addMe()
    expect(state.value).toBe('test me')
  })

  it('Another test', () => {
    state.addPlease()
    expect(state.value).toBe('test me, please')
  })
})

1 Ответ

0 голосов
/ 12 марта 2019

Как правило, тесты должны быть разработаны так, чтобы они не зависели друг от друга.Это, конечно, не закон, но хорошая практика, поскольку он дает вашему набору тестов ряд приятных свойств:

  1. С независимыми тестами вы можете добавлять тесты в любом месте, удалять тестыпереупорядочивать тесты без неожиданного влияния на другие тесты.

  2. Вы можете улучшить тесты индивидуально, не думая о влиянии на другие тесты, например, упростив внутреннюю работу теста.

  3. Каждый тест можно понять, не глядя на другие тесты, и в случае неудачных тестов найти причину ошибки легче.

  4. Независимые тесты проходят успешно и не проходят индивидуально.В случае зависимых тестов, если один тест не пройден, последующие тесты, скорее всего, также не пройдут.

  5. Вы можете выполнять свои тесты выборочно, например, чтобы сэкономить время при выполнении тестового примера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...