ASP.NET Core 에서 xUnit 을 사용 하여 유닛 테스트 를 진행 합 니 다.

5153 단어 ASP.NETCorexUnit
유닛 테스트 의 기능 은 MVC 의 첫 번 째 버 전이 탄생 했 을 때 중요 한 판매 점 으로 소개 되 었 다.보통 MVC 와 webform 을 비교 할 때 유닛 테스트 는 반드시 베이스 카드 를 죽 이 고 webform 을 아무것도 아 닌 것 으로 만 들 었 다.
유닛 테스트 의 중요성 은 더 말 할 필요 도 없다.유닛 테스트 를 하 는 프로젝트 는 개발 자 에 게 보험 을 사 주 는 것 과 같다.물론 이 보험 의 품질 은 유닛 테스트 의 품질 에 달 려 있다.같은 Mock 의 유닛 테스트 는 아름 다 워 보이 지만 아무것도 커버 할 수 없다.현재 업무 중의 오래된 프로젝트 는 2 만 여 개의 단원 테스트 사례 가 있 는데 그 중에서 많은 것 이 심혈 을 기울 인 작품 이 고 업무 논 리 를 진정 으로 실현 했다.개발 자 들 은 안심 하고 코드 를 수정 할 수 있다.물론 모든 것 은 TDD 의 원칙 에 따라 진행 해 야 한다.구체 적 으로 는 상세 하 게 말 하지 않 는 다.
그 다음 에 본론 으로 들 어가 면 유닛 테스트 라 는 중요 한 기초 기능 은.NET Core 에서 없어 서 는 안 된다.관련 API 와 구성 요소 가 제공 하 는 기능 은 이전 버 전과 큰 차이 가 없다.주로.NET Core 에 대한 지원 이 필요 하 다.다시 말 하면 예전 에.NET Framework 플랫폼 에서 의 코드 는.NET Core 를 지원 하 는 코드 를 다시 생 성 해 야 한 다 는 것 이다.예 를 들 어 본 고 에서 말 하고 자 하 는 xUnit,xUnit 은.NET Core 에 대한 지원 버 전 을 제 공 했 습 니 다.다음은 ASP.NET Core 에서 xUnit 을 사용 하여 유닛 테스트 를 하 는 방법 을 살 펴 보 겠 습 니 다.
xUnit.Net 소개
xUnit.net 의 창조 자 는 Jim Newkirk 와 Brad Wilson 이 NUnit 와 다른 단원 테스트 프레임 워 크 를 포함 한 사용 경험 에서 정리 한 새로운 프레임 워 크 입 니 다.NUnit 에 비해 xUnit.net 은 다음 과 같은 특징 이 있 습 니 다.
  • 모든 테스트 방법 에 대상 인 스 턴 스 를 생 성 합 니 다
  • [SetUp]과[TearDown]
  • 을 취소 했다.
  • [Expected Exception]
  • 취소
  • Aspect 와 유사 한 기능
  • 사용자 정의 속성(Attribute)의 수 를 감소 시 켰 습 니 다
  • 범 형 채택
  • 익명 의뢰
  • 확장 가능 한 단언
  • 확장 가능 한 테스트 방법
  • 확장 가능 한 테스트 클래스
  • xUnit.net 의 공식 홈 페이지 는:http://xunit.codeplex.com,다음은 xUnit.net 의 실행 인터페이스 입 니 다:

    다운로드 한 xUnit.net 압축 파일 에 GUI 를 지원 하 는 exe 파일 이 4 개 있 습 니 다.각각:
  • xunit.gui.clr 4.exe:x64 및.Net 4.0 에서 xUnit.net 을 실행 하 는 데 사 용 됩 니 다.
  • xunit.gui.clr 4.x86.exe:x86 및.Net 4.0 에서 xUnit.net 을 실행 하 는 데 사 용 됩 니 다.
  • Xunit.gui.exe:x64 및.Net 4.0 이하 버 전에 서 xUnit.net 을 실행 하 는 데 사 용 됩 니 다.
  • xunit.gui.x86.exe:x86 및.Net 4.0 이하 버 전에 서 xUnit.net 을 실행 합 니 다.
  • 준비 항목 코드:
    1.UseXunit 라 는 빈 ASP.NET Core 웹 프로젝트 를 만 듭 니 다.
    2.그리고 procject.json 의 내용 을 다음 과 같이 수정 하고 dependencies 의 마지막 줄 에 MVC 구성 요소 에 대한 의존 도 를 추가 합 니 다.
       "Microsoft.AspNetCore.Mvc": "1.0.1"
    3.Startup.cs 파일 수정
       Configure Services 방법 에 services.AddMvc()를 추가 합 니 다.
       Configure 방법 에 app.UseMvc With DefaultRoute()를 추가 합 니 다.
    3.프로젝트 루트 디 렉 터 리 에 Controllers 디 렉 터 리 를 새로 만 들 고 HomeController 를 추가 합 니 다.코드 는 다음 과 같 습 니 다.
    
    public class HomeController : Controller
      {
        public IActionResult Index()
        {
          return Content("Hello test");
        }
      }
    4.이 쯤 되면 프로젝트 가 달 릴 수 있 을 것 같 습 니 다.실행 후 출력 Hello test 를 볼 수 있 습 니 다.간단 한 프로젝트 가 갖 춰 졌 음 을 설명 합 니 다.
    유닛 테스트 항목 추가
    다음은 단원 테스트 항목 에 가입 하여 하나의 테스트 항목 을 독립 하여 관리 하기에 편리 하 다.
    1.솔 루 션 파일 을 오른쪽 클릭 하고 새 솔 루 션 폴 더 를 선택 한 다음 test 라 고 명명 합 니 다.

    2.test 디 렉 터 리 에.NET Core 프로젝트 를 새로 만 듭 니 다.여기 서 선택 한 항목 유형 은 Class Library(.NET Core)이 고 이름 은 UseXunt.Tests 입 니 다.

    3.그리고 Tests 프로젝트 의 procject.json 내용 을 다음 과 같이 수정 합 니 다.
    
    {
     "version": "1.0.0-*",
     "testRunner": "xunit",
     "dependencies": {
      "Microsoft.NETCore.App": {
       "type": "platform",
       "version": "1.0.0"
      },
      "xunit": "2.1.0",
      "dotnet-test-xunit": "2.2.0-preview2-build1029",
      "UseXunit": "1.0.0",
    
      "Microsoft.AspNetCore.Mvc": "1.0.1"
     },
     "frameworks": {
      "netcoreapp1.0": {
       "imports": [ "dotnet5.6", "portable-net45+win8" ]
      }
     }
    }
    
    
    이 변경 사항 은 시스템 의 기본 생 성 설정 을 거의 다시 썼 습 니 다.시스템 의 기본 설정 은 거의 달 릴 수 없습니다.다시 설정 해 야 합 니 다.
    dependencies 는 xunit 와 dotnet-test-xunit 의 운영 지원 패 키 지 를 도 입 했 습 니 다.물론 테스트 항목 에 대한 의존 도(UseXunit)를 가 입 했 습 니 다.
    또 다른 관건 적 인 설정 은 testrunner 를 xunit 로 지정 한 것 입 니 다.
    저장 하면 자동 으로 관련 패 키 지 를 복원 합 니 다.
    4.지금부터 TestCase 를 만 들 수 있 습 니 다.
    홈 컨트롤 러 Test 클래스 를 새로 만 듭 니 다.내용 은 다음 과 같 습 니 다.
    
    public class HomeControllerTest
      {
        [Fact]
        public void ShouldGetIndexResult()
        {
          var homeController = new HomeController();
          var contentResult = homeController.Index() as ContentResult;
          Assert.NotNull(contentResult);
          Assert.Equal("Hello test", contentResult.Content);
        }
      }
    
    
    여기에 기본 적 인 테스트 용례 를 만 들 고 익숙 한 단축 키 Ctrl+U+R(Reshaper)을 사용 하면 test 를 즐겁게 실행 할 수 있 습 니 다.

    전체 코드 참조https://github.com/shenba2014/AspDotNetCoreMvcExamples/tree/master/UseXunit
    이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

    좋은 웹페이지 즐겨찾기