Programming/Blah Blah

nUnit과 xUnit 프레임워크 차이

휘탱 2023. 10. 19. 01:35

nUnit과 xUnit은 모두 .NET 환경에서 사용되는 테스트 프레임워크입니다.

비슷한 목표를 가지고 있지만, 여러 가지 중요한 차이점이 존재합니다.

 

어트리뷰트 및 테스트 메서드 정의: 두 프레임워크는 어트리뷰트와 테스트 메서드 정의 방식에서 차이가 있습니다.

팩트(Fact) 및 이론(Theory) 테스트: xUnit은 이론 테스트를 지원하여 다양한 입력 데이터를 사용할 수 있게 해줍니다.

테스트 데이터 제공: xUnit은 데이터 제공 측면에서 더 유연하며 다양한 방법을 제공합니다.

테스트 그룹화 및 확장성: xUnit은 테스트 그룹화 및 확장성 측면에서 간결하고 유연한 접근 방식을 사용합니다.

테스트 러너 및 확장: xUnit은 테스트 러너와 확장성 측면에서 더 유연하며 커스터마이징이 쉽게 가능합니다.

nUnit

  • [TestFixture]: 테스트 클래스를 정의합니다.
  • [Test]: 테스트 메서드를 정의하고 테스트 케이스를 나타냅니다.
  • [SetUp]: 각 테스트 메서드 이전에 실행할 설정 메서드를 정의합니다.
  • [TearDown]: 각 테스트 메서드 이후에 실행할 정리 메서드를 정의합니다.
  • [TestCase]: 매개변수화된 테스트를 정의하고 여러 입력 값에 대해 동일한 테스트를 여러 번 실행할 수 있습니다.
  • [TestCaseSource]: 테스트 케이스 데이터를 제공하는 소스 메서드를 지정합니다.
  • [Ignore]: 테스트를 무시하고 실행하지 않도록 지정합니다.

xUnit

  • [Fact]: 사실(팩트)로서 실행되는 단일 테스트 메서드를 정의합니다.
  • [Theory]: 다양한 입력 데이터를 사용하여 여러 번 실행할 수 있는 테스트를 정의합니다.
  • [InlineData]: [Theory]와 함께 사용되며, 입력 데이터를 지정합니다.
  • [ClassData]: 클래스의 데이터 소스를 지정하여 테스트 메서드에 데이터를 제공합니다.
  • [Trait]: 테스트를 특성으로 그룹화하여 필터링할 수 있도록 지정합니다.
  • [BeforeAfterTestAttribute]: 테스트 메서드 전후에 실행할 코드를 제공합니다.
  • [Collection]: 관련된 테스트 클래스를 그룹화하기 위해 사용됩니다.
  • [MemberData]: 매개변수화된 테스트를 정의할 때 사용되며, 메서드와 데이터 소스를 제공합니다.

참조

nUnit

xUnit

반응형