c# - 테스트 - .NET 2.0에서 BDD/TDD를 구현하는 가장 좋은 방법은 무엇입니까?




유닛 테스트 방법 (8)

내 응용 프로그램에 테스트 스위트를 추가하려고하지만 .NET 3.5의 새로운 테스트 프레임 워크로 이동할 수 없습니다.

누구든지 사용할 수있는 좋은 테스트 프레임 워크에 대한 제안을 가지고 있습니까?


NUnit은 항상 내 즐겨 찾기입니다. 그러나 TFS를 소스 컨트롤로 사용하는 경우 Microsoft Stack을 사용하는 것이 좋습니다.


모의 객체 라이브러리의 경우 BSD 라이선스가있는 Rhino.Mocks 가 다소 기쁜 것으로 나타났습니다.


NUnit과 Rhino가 잘 어울리 며 자동 조롱 컨테이너 가 관심의 대상이 될 수 있습니다.

BDD 도보 고 있다면 NBehave 가 좋은 선택 일 것입니다. 그러나 단위 테스트 (xSpec)와 관련된 BDD의 스타일을 의미한다면 프레임 워크를 추가 할 수는 있지만 (예 : specunit 과 같은 것들은 synctactic 설탕을 추가 함) MSpec을보고 싶을 수도 있습니다. 흥미 롭습니다.


나는 Moq를 외쳐야 할 것입니다. 그것은 당신을 성공의 구덩이로 인도하는 데 도움이되는 깨끗한 빛 조롱 프레임 워크입니다.

TFS에 내장 된 테스트 도구는 괜찮습니다. 작업을 완료하게되지만 작업하기가 약간 번거로울 수 있습니다. 생성 된 보고서, 코드 적용 범위 및 기타 몇 가지 부분은 특히 나빠요, 당신은 50 대보다는 22 대머리가됩니다.

테스트를 정말 좋아한다면 지속적인 통합을 시도해보십시오. 회귀에서 오는 고통을 신속하게 느끼고 최종 목표에 더 빨리 도달 할 수 있도록 도와줍니다.

어떤 작업을 하든지간에 몇 번 시도해보고 시간이 있다면 가장 자연스러운 것이 무엇인지 확인하십시오. 행운과 행복을위한 코딩.


내 프로젝트에서는 NUnit과 TestDriven.NET을 큰 성공을 거두었습니다. 테스트 코드를 호스팅하기 위해 별도의 라이브러리를 만들거나 실행 파일이나 라이브러리에 넣을 수 있습니다. 프로덕션 코드를 테스트 코드와 함께 사용하려는 경우에는 모두 다릅니다.

Dependency Injection의 경우 현재 프로젝트에서 NInject 를 사용하고 그 작업은 훌륭합니다. 생성자 삽입을 사용하면 [Inject] 속성을 사용하여 코드를 복잡하게 만들 필요가 없습니다.

나는 .NET 2.0 프로젝트를위한 모의 라이브러리를 사용하지 않았지만 다른 .NET 3.5 프로젝트를 위해 Moq 을 사용할 것이다.

이 모든 기능은 .NET 2.0 이상에서 작동합니다. (Moq 제외)


이것은 이미 말한 내용을 요약 한 것이지만 TDD의 경우 Rhino Mocks와 MBUnit을 개인적으로 사용합니다. Rhino Mock은 자유롭고 오픈 소스 인 조롱 프레임 워크입니다. Rhino Mock의 장점은 NMock에서와 마찬가지로 기대치를 설정하는 데 마술 문자열을 사용할 필요가 없다는 것입니다.

MBUnit은 MbUnit에 RowTests 개념이 있으므로 테스트 방법에 대한 입력을 다양하게 할 수 있습니다. MBUnit도 무료로 사용할 수 있습니다.

또한 CI (Continuous Integration Server)에서 단위 테스트 프레임 워크 용으로 선택한 것이 무엇이든 지원되도록하고 싶습니다. Nunit은 Cruise Control.NET에서 기본적으로 지원되며, ccnet에서 MBUnit을 작동 시키려면 약간의 작업이 필요합니다.

IDE 관점에서 보면 TestDriven.NET이 있어야합니다. TestDriven.NET을 사용하면 IDE에서 테스트를 마우스 오른쪽 버튼으로 클릭하고 실행할 수 있으며 MBUnit 및 Nunit 등을 지원합니다.

NBehave는 내가 사용한 BDD 라이브러리입니다. 나는 다른 것들을 사용하지 않았으므로 비교할 수는 없지만 NBehave는 MBUnit 팀의 Gallio가 지원합니다. 즉, BDD 테스트를 TestDriven.NET을 사용하여 단위 테스트와 마찬가지로 실행할 수 있습니다.

Resharper를 적극 추천합니다. 이 리팩토링 및 안내 도구를 사용하면 생산성이 크게 향상됩니다. 테스트를 개발할 때 코드 변경에 도움이 될 것입니다.

희망이 도움이


우리는 MbUnitRihno Mock을 사용 하며 함께 잘 작동하는 것으로 입증됩니다. TDD를 할 때 당신은 거의 확실하게 의존성 주입을해야 할 것입니다. 수동으로 수행 할 수 있습니다. Castle Windsor 와 같은 IoC 컨테이너를 살펴볼 가치가 있습니다.

존 폴 바디 돔 (John Paul Bodhood)의 스크린 캐스트를 보면서 시작하는 것이 좋습니다. JPB의 블로그


NUnithttp://www.nunit.org 에서 구할 수 있습니다. MS 스택에서 작업 할 때조차 이것을 제안합니다 - 비 MS 프레임 워크에 대한 지원은 MVC 미리보기에서 일어나고 있습니다. 모두 스택에 맞게 맞춤 설정할 수 있습니다.





bdd