Looking for nunit Answers? Try Ask4KnowledgeBase
Looking for nunit Keywords? Try Ask4Keywords

nunitnunit 시작하기


비고

이 섹션은 nunit이 무엇인지, 왜 개발자가 그것을 사용하고 싶어하는지에 대한 개요를 제공합니다.

또한 nunit 내의 큰 주제를 언급하고 관련 주제에 링크해야합니다. nunit에 대한 문서가 새롭기 때문에 관련 주제의 초기 버전을 만들어야 할 수도 있습니다.

버전

번역 출시일
2.2 2004-08-08
2.2.1 2004-10-26
2.2.2 2004-12-07
2.2.3 2005-02-14
2.2.4 2005-12-14
2.2.5 2005-12-22
2.2.6 2006-01-21
2.2.7 2006-02-18
2.2.8 2006-04-21
2.2.9 2006-11-26
2.2.10 2007-03-15
2.4 RC1 2007-02-25
2.4 (최종판) 2007-03-16
2.4.1 2007-05-03
2.4.2 2007-08-02
2.4.4 2007-10-20
2.4.5 2007-11-23
2.4.6 2007-12-31
2.4.7 2008-03-30
2.4.8 2008-07-21
2.5 2009-05-02
2.5.1 2009-07-08
2.5.2 2009-08-10
2.5.3 2009-12-11
2.5.4 2010-04-08
2.5.5 2010-04-22
2.5.6 2010-07-24
2.5.7 2010-08-01
2.5.8 2010-10-14
2.5.9 2010-12-14
2.5.10 2011-04-02
2.6 2012-02-20
2.6.1 2012-08-04
2.6.2 2012-10-22
2.6.3 2013-10-10
2.6.4 2014-12-16
3.0 (알파 1) 2014-09-22
3.0 (베타 1) 2015-03-25
3.0 RC1 2015-11-01
3.0.0 최종 릴리스 2015-11-15
3.0.1 2015-12-01
3.2 2016-03-05
3.2.1 2016-04-19
3.4 2016-06-25

안녕하세요 세계

[TestFixture]
public class UnitTest1
{
    class Message
    {
        public string Text { get; } = "Hello World";
    }

    [Test]
    public void HelloWorldTest()
    {
        // Act
        var message = new Message();

        // Assert
        Assert.That(message.Text, Is.EqualTo("Hello World"));
    }
}
 

Hello World 테스트

NuGet을 사용하여 설치

Install-Package NUnit
 

이 패키지는 단위 테스트를 생성하는 데 필요한 모든 어셈블리를 포함합니다.

테스트는 다음 방법 중 하나를 사용하여 실행할 수 있습니다.

  • Visual Studio 유닛 테스트 창
  • 콘솔 러너
  • NUnit 3을 지원하는 타사 주자

Visual Studio 유닛 테스트 창

Visual Studio Unit Test Window를 사용하여 테스트를 실행하려면 NUnit 3 테스트 어댑터를 설치하십시오. https://visualstudiogallery.msdn.microsoft.com/0da0f6bd-9bb6-4ae3-87a8-537788622f2d

콘솔 러너

NuGet을 통해 NUnit Console Runner 설치

Install-Package NUnit.Console
 

실행 파일 nunit3-console.exe는 packages \ NUnit.3.XX \ tools에 있습니다.

TestCaseAttribute

[TestCase(0, 0, 0)]
[TestCase(34, 25, 59)]
[TestCase(-1250, 10000, 8750)]
public void AddNumbersTest(int a, int b, int expected)
{
    // Act
    int result = a + b;
            
    // Assert
    Assert.That(result, Is.EqualTo(expected));
}
 

AddNumbersTest가 전달되었습니다.

Assert.Equals를 사용할 수없는 이유

Assit.Equals ()를 Nunit과 MSTest 둘 다에 사용할 수없는 이유가 궁금했습니다. 시작 단계가 아니면이 방법을 사용할 수 없음을 알아야합니다. 대신 Assert.AreEqual ()을 사용하여 두 객체가 동일한 지 비교합니다.

그 이유는 매우 간단합니다. 모든 클래스와 마찬가지로 Assert 클래스는 주어진 개체가 현재 개체와 같은지 확인하기위한 public 가상 Equals 메서드가있는 System.Object에서 상속됩니다. 따라서 equals 메서드를 호출하면 단위 테스트 에서처럼 Assert 클래스와 아무 관련이없는 두 개체를 비교하는 것이 실수 일 수 있습니다. 그 결과 Nunit과 MSTest는 모두 그 목적을 위해 Assert.AreEqual 메서드를 제공하기로 결정했습니다.

또한 실수로 Equals 메서드를 사용하지 않으려면 실수로 이것을 사용하면 예외를 throw하여 경고를 표시하기로 결정했습니다.

Nunit 구현 :

        [EditorBrowsable(EditorBrowsableState.Never)]
    public static new bool Equals(object a, object b)
    {
        // TODO: This should probably be InvalidOperationException
        throw new AssertionException("Assert.Equals should not be used for Assertions");
    }