[javascript] jest에서 ‘it’과 ‘test’의 차이점은 무엇입니까?

테스트 그룹에 두 가지 테스트가 있습니다. 하나는 그것을 사용하고 다른 하나는 테스트를 사용하며 매우 유사하게 작동하는 것 같습니다. 그들 사이의 차이점은 무엇입니까?

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);
        })
  });
});

최신 정보:

그 것 test입니다 농담의 공식 APIit이 아니다.



답변

에서 문서 가 말한다 여기 : it의 별칭입니다 test. 그래서 그들은 정확히 같습니다.


답변

그들은 똑같은 일을하지만 그들의 이름은 다르고 시험 이름과의 상호 작용과 다릅니다.

테스트

당신의 글 :

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당신이 직접 작성하지 않은 테스트 실패의 결과를 읽을 때 실제로 포인트가 있습니다. 테스트가 무엇인지 더 빨리 이해하는 데 도움이됩니다.


답변

다른 답변이 명확했듯이 동일한 작업을 수행합니다.

나는 두 가지가 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);
});

문서 :


답변

jest 문서에서 알 수 있듯이
https://jestjs.io/docs/en/api#testname-fn-timeout

테스트 (이름, fn, 시간 초과)

또한 별칭 아래에서 : it (name, fn, timeout)

그리고 설명은 테스트를 그룹으로 구성하기를 원하는 경우를위한 것입니다 :
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();
  });
});

필요하지 않습니다. 최상위 레벨에서 직접 테스트 블록을 작성할 수 있습니다. 그러나 테스트를 그룹으로 구성하려는 경우에 유용합니다.


답변

Jest는 왜 정확히 동일한 기능을 위해 두 가지 버전이 있는지 언급하지 않았습니다. 내 생각 엔, 그것은 단지 컨벤션만을위한 것입니다. 단위 테스트 테스트 통합 테스트를 위해 테스트합니다.


답변

그들은 같은 것입니다. 프로그래밍 언어로 TypeScript를 사용하고 있으며, @@ types / jest / index.d.ts의 jest 패키지 소스 코드에서 정의 파일을 살펴보면 다음 코드를 볼 수 있습니다. 분명히 ‘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;


답변