Яка різниця між описом та цим у Jest?


80

Під час написання модульного тесту в Jestабо Jasmineколи ви використовуєте describe?

Коли ви використовуєте it?

Я зазвичай це роблю

describe('my beverage', () => {
  test('is delicious', () => {
  });
});

Коли прийшов час нового describeабо нового it?

Відповіді:


117

describeрозбиває ваш набір тестів на компоненти. Залежно від вашої стратегії тестування, ви можете описати кожну функцію у своєму класі, кожен модуль вашого плагіна або кожну функціональну орієнтацію користувача.

Ви також можете вкласти описи для подальшого поділу набору.

itтут ви проводите індивідуальні тести. Ви повинні мати можливість описати кожен тест як невелике речення, наприклад, "він обчислює площу, коли встановлений радіус". Ви не зможете додатково розподіляти тести - якщо вам здається, що потрібно, використовуйте describeзамість цього.

describe('Circle class', function() {
  describe('area is calculated when', function() {
    it('sets the radius', function() { ... });
    it('sets the diameter', function() { ... });
    it('sets the circumference', function() { ... });
  });
});

22

Як я вже згадував у цьому питанні , describeце для групування, itдля тестування.

Як сказано в документах-шутках, testі itвони однакові: https://jestjs.io/docs/en/api#testname-fn-timeout

тест (ім'я, fn, час очікування)

Також під псевдонімом: it (ім'я, fn, час очікування)

і describeсаме для тих випадків, коли ви бажаєте, щоб ваші тести були організовані в групи: https://jestjs.io/docs/en/api#describename-fn

описувати (ім'я, fn)

describe(name, fn)створює блок, який об’єднує кілька пов’язаних тестів. Наприклад, якщо у вас є myBeverageпредмет, який повинен бути смачним, але не кислим, ви можете спробувати:

const myBeverage = {
  delicious: true,
  sour: false,
};

describe('my beverage', () => {
  test('is delicious', () => {
    expect(myBeverage.delicious).toBeTruthy();
  });

  test('is not sour', () => {
    expect(myBeverage.sour).toBeFalsy();
  });
});

Це не потрібно - ви можете писати тестові блоки безпосередньо на верхньому рівні. Але це може бути корисним, якщо ви хочете, щоб тести були організовані в групи.


0

Я розглядаю це більше зважаючи на вплив на результати тесту. Використовуючи опис або кілька рівнів опису, ви можете згрупувати свої результати для читабельності.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.