Umbraco 테스트 예제, 이제 Umbraco 17에서도

발행: (2026년 2월 26일 오전 02:48 GMT+9)
4 분 소요
원문: Dev.to

Source: Dev.to

도구

이름설명
xUnit v3테스트 프레임워크. 원한다면 다른 테스트 프레임워크를 사용해도 됩니다.
NSubstitute목(mock) 라이브러리. 어떤 목 라이브러리든 사용할 수 있습니다. 이 프로젝트는 광범위한 목을 사용하지 않지만, 예를 들어 IPublishedValueFallback 은 실제로 사용하지 않더라도 모든 퍼블리시된 콘텐츠 항목에 필수 매개변수이므로 목을 삽입하는 것이 편리합니다.
Test Containers테스트 실행 중 자동으로 Docker 컨테이너를 생성합니다. 테스트 후 자동으로 정리되는 빈 SQL Server 데이터베이스를 만들 때 사용됩니다.

Umbraco 16과 비교한 주요 차이점

데이터베이스 초기화

SqlServerDatabase 리소스는 이제 SQL Server 테스트 컨테이너 안에 두 번째 데이터베이스를 만들지 않습니다. Umbraco 16은 아직 존재하지 않을 경우 부팅 시 새 데이터베이스를 기꺼이 만들었지만, Umbraco 17은 그렇지 않으며 연결 오류를 발생시킵니다.

일반적인 Umbraco 사용에서는 이 변경이 큰 차이를 만들지 않습니다. EF Core를 함께 사용한다면 여기서 약간의 추가 주의가 필요할 수 있습니다.

통합 테스트용 기본 URL

WebsiteFixture는 이제 백오피스 HttpClient를 생성할 때 고정된 기본 URL을 설정합니다. 다른 도메인을 사용해야 한다면 이 기본 URL을 조정할 수 있지만, https 프로토콜을 사용해야 합니다. Umbraco 16과 달리 Umbraco 17은 기본적으로 백오피스 엔드포인트에 HTTPS를 요구하며 HTTP 요청을 거부합니다.

모든 변경 사항은 다음 커밋에서 확인할 수 있습니다:
https://github.com/D-Inventor/automated-testing-in-umbraco/commit/573ef96a155c390ba3d4383bf555f9ff5723b3b4

추가 참고 사항

이 저장소의 테스트용 예제 웹사이트에 약간의 관심을 기울였습니다. 홈 페이지는 이제 약간 더 멋진 템플릿을 가지고 있지만, 모든 내용은 정적입니다. 아직 모든 것을 연결하지는 않았으며, 주요 초점은 TDD를 보여주는 것입니다.

C# 버전 Playwright는 스크린샷 비교를 지원하지 않아 템플릿 변경에 대한 스냅샷 테스트를 할 수 없습니다. JavaScript 버전은 이를 지원하므로, 보다 포괄적인 엔드‑투‑엔드 테스트를 위해서는 동등한 관리 API 클라이언트와 시나리오 빌더를 만들어야 합니다.

여기까지입니다

이것이 제가 공유하고 싶었던 전부입니다. 저장소를 확인하고 별점을 주시며, 테스트 예제가 도움이 되었는지 알려 주세요. 읽어 주셔서 감사합니다 😊

0 조회
Back to Blog

관련 글

더 보기 »

FSCSS 변수 대체 연산자 (||)

FSCSS Variable Fallback Operator의 커버 이미지 ||https://media2.dev.to/dynamic/image/width=1000,height=420,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fd...