[javascript] Mocha에서 테스트에 사용되는 Assertion의 종류는?
  1. Chai: Chai는 Mocha와 자주 함께 사용되는 주장 라이브러리입니다. 다양한 Assertion 스타일을 지원하며, should, expect, assert와 같이 다양한 인터페이스를 제공합니다.

예시:

const expect = require('chai').expect;

describe('Example Test Suite', function() {
  it('should pass the test', function() {
    expect(2 + 2).to.equal(4);
  });
});
  1. Sinon: Sinon은 테스트 더블(Test doubles)을 생성하고, 스텁(Stub), 스파이(Spy), 모의체(Mock) 등의 기능을 제공하는 테스트 라이브러리입니다. Sinon은 주로 Mocha와 함께 사용되어 테스트의 동작을 제어하고 테스트 대상의 의존성을 대체할 수 있습니다.

예시:

const sinon = require('sinon');

describe('Example Test Suite', function() {
  it('should call the callback function', function() {
    const callback = sinon.spy();
    
    // 테스트 대상 코드 실행
    myFunction(callback);
    
    // 테스트 대상이 적절히 동작하여 callback이 호출되는지 검증
    sinon.assert.calledOnce(callback);
  });
});
  1. 기타 Assertion 라이브러리: Mocha는 Chai와 Sinon 외에도 다른 Assertion 라이브러리들과도 함께 사용할 수 있습니다. 예를 들어, Jest의 Assertion 라이브러리인 expect도 Mocha에서 사용할 수 있습니다.

주장 라이브러리는 테스트 코드에서 기대하는 동작을 명확하게 정의하고, 테스트 결과를 평가하는데 도움을 줍니다. 이들 라이브러리를 사용하여 Mocha 테스트를 작성하면 테스트를 더욱 간편하게 작성하고 관리할 수 있습니다.