문제

.NET(또는 다른 언어나 플랫폼)에서 테스트 어셈블리 이름을 지정하는 가장 좋은 규칙은 무엇입니까?

제가 주로 나누는 옵션은 다음과 같습니다(다른 옵션도 제공해주세요!).

  • 회사 웹 사이트 - 프로젝트
  • 회사.웹사이트.테스트

또는

  • 회사 웹 사이트
  • 회사.웹사이트테스트

첫 번째 솔루션의 문제점은 .Tests가 사이트의 하위 네임스페이스인 것처럼 보이지만 실제로는 더 평행하다는 것입니다.다음과 같은 새로운 하위 네임스페이스가 작동하면 어떻게 되나요? 회사.웹사이트.컨트롤, 예를 들어 해당 네임스페이스에 대한 테스트를 어디에 두어야 할까요?

어쩌면 다음과 같아야 할 수도 있습니다: 테스트.회사.웹사이트 그리고 테스트.회사.웹사이트.컨트롤, 등등.

도움이 되었습니까?

해결책

나는 함께 갈 것이다

* Company.Website - the project
* Company.Website.Tests

간략한 이유와 대답은 간단합니다. 테스트와 프로젝트는 코드로 연결되어 있으므로 네임스페이스를 공유해야 합니다.

솔루션에서 코드를 분할하고 테스트하려는 경우에도 해당 옵션이 있습니다.예를 들어당신은 솔루션을 설정할 수 있습니다

-코드 폴더

  • 회사 웹 사이트

-테스트 폴더

  • 회사.웹사이트.테스트

다른 팁

나는 개인적으로 함께 갈 것입니다

회사.테스트.웹사이트

이렇게 하면 실제 프로젝트와 동일한 구조를 따르는 공통 테스트 네임스페이스와 그 안에 프로젝트가 있습니다.

실제로 대체 병렬 루트가 있습니다.

테스트.회사.웹사이트

새로운 하위 네임스페이스가 있을 때 명확하게 하는 데 효과적입니다.

나는 테스트 네임스페이스를 다음과 같이 구성하는 것을 좋아합니다.

회사.테스트.웹사이트.xxx

회사.테스트.웹사이트.컨트롤

여러분과 마찬가지로 저는 테스트를 기본 코드에 대한 병렬 네임스페이스 구조로 생각하며 이것이 여러분에게 이를 제공합니다.또한 네임스페이스가 여전히 회사 이름으로 시작하므로 타사 라이브러리와 이름 충돌이 없어야 한다는 장점도 있습니다.

나 역시 어셈블리의 실제 이름 앞에 "Tests"를 붙이는 것을 선호합니다. 그러면 NUNit이나 사용 중인 테스트 도구로 가져오기 위해 대량 선택했을 때 모든 단위 테스트 어셈블리가 알파벳순으로 함께 나열되어 쉽게 볼 수 있습니다.

따라서 웹사이트가 내 솔루션(및 어셈블리)의 이름이라면 다음을 제안합니다.

테스트.웹사이트.dll 실제 코드 어셈블리와 함께 진행 웹사이트.Dll

우리는 임베디드 접근 방식을 따릅니다.

Company.Namespace.Test
Company.Namespace.Data.Test

이렇게 하면 프로젝트 간에 앞뒤로 전환하거나 특정 메서드를 다루는 테스트가 있는지 확인하기 위해 참조를 찾을 필요 없이 테스트 중인 코드에 가까워집니다.또한 두 개의 별개이지만 동일한 계층 구조를 유지할 필요도 없습니다.

또한 개선하고 개발하면서 코드의 개별 부분을 테스트할 수도 있습니다.

처음에는 조금 이상해 보이지만 장기적으로 보면 우리에게 정말 좋은 결과를 가져왔습니다.

나는 보통 테스트 프로젝트 이름을 짓는다. 프로젝트 테스트 솔루션 탐색기에서 간결성을 위해 다음을 사용합니다. 회사.네임스페이스.테스트 네임스페이스용.

나는 다음과 같이 가는 것을 선호합니다:

회사.웹사이트.테스트

Company.Website.Controls와 같은 하위 네임스페이스는 신경 쓰지 않습니다. 모든 테스트는 동일한 네임스페이스에 들어갑니다.회사.웹사이트.테스트.테스트 네임스페이스가 나머지 코드와 평행하게 되는 것을 원하지 않습니다. 왜냐하면 리팩토링 네임스페이스가 두 배 더 오래 걸리기 때문입니다.

나는 Company.Website.Spec을 선호하며 일반적으로 솔루션당 하나의 테스트 프로젝트를 가지고 있습니다.

MVC가 .net 웹 개발 세계에서 현실화되기 시작하면서 저는 그러한 관점을 따라 생각하기 시작했습니다.M, V 및 C는 별개의 구성 요소이므로 다음과 같습니다.

  • 회사.네임스페이스.웹사이트
  • 회사.네임스페이스.웹사이트.코어
  • 회사.Namspance.웹사이트.Core.테스트
  • 회사.네임스페이스.웹사이트.모델
  • 회사.네임스페이스.웹사이트.모델.테스트

웹 사이트는 가벼운 보기입니다.Core에는 컨트롤러, 도우미, 뷰 인터페이스 등이 포함되어 있습니다.Core.Tests는 해당 Core에 대한 테스트입니다.모델은 데이터 모델을 위한 것입니다.여기서 멋진 점은 모델 테스트가 데이터베이스별 테스트를 자동화할 수 있다는 것입니다.

일부 사람들에게는 이것이 과잉일 수도 있지만, 나는 이를 통해 우려 사항을 상당히 쉽게 분리할 수 있다고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top