Подтвердить что ты не робот

В чем разница между "этим" и "тестом" в шутке?

У меня есть два теста в моей тестовой группе. Один использует его, другой использует тест, и они, похоже, работают очень похоже. В чем разница между ними?

describe('updateAll', () => {
  it('no force', () => {
    return updateAll(TableName, ["fileName"], {compandId: "test"})
        .then(updatedItems => {
          let undefinedCount = 0;
          for (let item of updatedItems) {
            undefinedCount += item === undefined ? 1 : 0;
          }
          // console.log("result", result);
          expect(undefinedCount).toBe(updatedItems.length);
        })
  });

  test('force update', () => {
    return updateAll(TableName, ["fileName"], {compandId: "test"}, true)
        .then(updatedItems => {
          let undefinedCount = 0;
          for (let item of updatedItems) {
            undefinedCount += item === undefined ? 1 : 0;
          }
          // console.log("result", result);
          expect(undefinedCount).toBe(0);
        })
  });
});

UPDATE:

Кажется, что test находится в официальном API Jest, но it нет.

4b9b3361

Ответ 2

Как выяснили другие ответы, они делают то же самое.

Я полагаю, что эти два варианта допускают 1) тесты в стиле " RSpec ", такие как:

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

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

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

или 2) тесты стиля " xUnit ", такие как:

function sum(a, b) {
  return a + b;
}

test('sum adds 1 + 2 to equal 3', () => {
  expect(sum(1, 2)).toBe(3);
});

Docs:

Ответ 3

Они делают то же самое, но их имена разные и при этом их взаимодействие с именем теста.

тестовое задание

Что ты пишешь:

describe('yourModule', () => {
  test('if it does this thing', () => {}
  test('if it does the other thing', () => {}
})

Что вы получите, если что-то не получится:

yourModule > if it does this thing

Это

Что ты пишешь:

describe('yourModule', () => {
  it('should do this thing', () => {}
  it('should do the other thing', () => {}
})

Что вы получите, если что-то не получится:

yourModule > should do this thing

Так что это о читаемости не о функциональности. На мой взгляд, it действительно имеет точку, когда дело доходит до чтения результата неисправного теста, что вы не написали сами. Это помогает быстрее понять, о чем идет речь.

Ответ 4

Это одно и то же. Я использую TypeScript в качестве языка программирования, и когда я просматриваю файл определения из исходного кода пакета jest из /@types/jest/index.d.ts, я вижу следующие коды. Очевидно, что существует множество разных имен "test", вы можете использовать любое из них.

declare var beforeAll: jest.Lifecycle;
declare var beforeEach: jest.Lifecycle;
declare var afterAll: jest.Lifecycle;
declare var afterEach: jest.Lifecycle;
declare var describe: jest.Describe;
declare var fdescribe: jest.Describe;
declare var xdescribe: jest.Describe;
declare var it: jest.It;
declare var fit: jest.It;
declare var xit: jest.It;
declare var test: jest.It;
declare var xtest: jest.It;