TDD에서 DDD로: ​​.NET Core Web API 빌드 - 2부

4478 단어 xunitdddnetcoretdd
전체 프로젝트는 여기에서 찾을 수 있습니다: https://github.com/lucianopereira86/CRUD-NetCore-TDD

기술


  • Visual Studio 2019
  • .NET Core 3.1.0
  • xUnit 2.4.0
  • Microsoft.EntityFrameworkCore 3.1.0
  • FluentValidation 8.6.0

  • 주제



  • Test Project
  • Post User

  • Fact
  • Red Step



  • 테스트 프로젝트



    재미를 시작할 시간입니다!
    Entity Framework Core 구조를 사용하여 User 엔터티의 각 CRUD 메서드에 대한 테스트를 빌드합니다.
    단위 테스트에는 Fact와 Theory의 두 가지 유형이 있습니다.
    Fact는 매개변수 없이 고유한 결과를 갖는 메소드입니다.
    이론은 다른 결과를 기대하는 여러 매개변수를 허용합니다.

    게시물 사용자



    아래 코드와 함께 "PostUserTest.cs"라는 파일이 있는 "Tests"라는 폴더를 테스트 프로젝트에 추가합니다.

    using Xunit;
    
    namespace CRUD_NETCore_TDD.Test.Tests
    {
        public class PostUserTest
        {
            #region THEORY
            #endregion
            #region FACT
            [Fact]
            public void Fact_PostUser ()
            {
    
            }
            #endregion
        }
    }
    
    

    사실



    레드 스텝



    우리의 첫 번째 테스트는 우리가 정말로 원하는 것을 실행할 것입니다: 데이터베이스에 새로운 사용자를 등록하는 것입니다. Fact_PostUser 메서드 안에 다음 코드를 작성합니다.

    [Fact]
    public void Fact_PostUser ()
    {
        // EXAMPLE
        var user = new User("LUCIANO PEREIRA", 33, true);
    
        // REPOSITORY
        ctx.User.Add(user);
        ctx.SaveChanges();
    
        // ASSERT
        Assert.Equal(1, user.Id);
    }
    

    처음에는 User 클래스가 없습니다. 또한 "ctx"개체는 DbContext 클래스의 인스턴스여야 하지만 코드를 컴파일하기 위해 아직 설치된 EF Core 라이브러리가 없습니다.
    그것이 바로 레드스텝입니다. 우리는 우리가 무엇을 원하고 무엇을 해야 하는지 알고 있습니다.
    Green 단계로 이동하기 전에 메소드 이름을 "Fact_PostUser"에서 "Fact_PostUser_NoModelNoRepository"로 변경하여 메소드 실행에 무엇이 누락되었는지 명확해집니다.

    다음



    그린스텝을 구현해보자.

    좋은 웹페이지 즐겨찾기