2011-11-30 2 views
2

나는 MS Test에 상당히 우울합니다. 내 저장소가 모든 CRUD 작업을 예상대로 수행하는지 확인할 수 있도록 통합 테스트를 만들고 싶습니다. 내가 3 개 시험 방법MS 테스트 주문 테스트 - 어떻게 명확하고 쉽게 실행할 수 있습니까?

내가 데이터를 추가하고 다시 읽어
  1. 만들어 Therfor -> 테스트 suceeds를 검색 한 경우 - 삽입 된 항목을 검색 할 수 있는지 테스트 suceeds을>을 내가 삽입 된 항목을 업데이트하고 다시 읽어
  2. 항목에 동일한 키가 있지만 데이터가 변경되었습니다.
  3. 삽입 된 항목을 삭제하고 다시 읽으려고합니다. 항목을 검색 할 수없는 경우> 테스트가 성공합니다.

내가 이런 식으로하고 싶은 주된 이유는 필자가 필요로하는 테스트 설정 양을 줄이는 것입니다.

첫 번째 아이디어는 모든 것을 수행하는 테스트 방법 하나를 추가하는 것이었지만 테스트가 실패하면 세 번째 부분에서 볼 수 없으며 다른 사람들은 성공했습니다.

그래서 프레임 워크에서 호출되는 순서를 말할 수 있어야하는 주문 테스트를 시도했습니다. 이것은 내가 일반적으로 피해야하는 테스트 뷰를 사용하는 한 작동합니다. 나는 평상시 control + R + T를 사용하고 있지만 이것은 또한 각 메소드를 정의 된 순서가 아니라 무작위 순서로 실행합니다. 마지막으로, 빌드 머신에서 주문 테스트를 실행하려면 추가 작업이 필요합니다.

나는 그 방법이 무작위 순서로 호출되는 이유를 이해할 수 없다. 왜 외부 파일이 필요한지 이해할 수 없으며 코드 내부에서 순서를 쉽게 정의 할 수 없습니다.

그럼 내 진짜 질문은 다음과 같습니다. 내가 뭘 잘못하고 있니? 왜 Microsoft는 도구에 이상한 기능을 추가합니까? 왜 [TestMethod ("CRUD", 1)]라고 말하지 말고 속성의 매개 변수를 사용하여 그룹과 순서를 정의하십시오.

Microsoft는 MS Test에서 어려운 일을 쉽게 처리 할 수있는 것으로 생각합니다.

도움 주셔서 감사합니다.

답변

1

"이유"에 관해서는 테스트 스위트의 사용자가 테스트에 시간 의존성을 도입하지 못하도록하는 것이라고 생각합니다. 유닛 테스트 프레임 워크이며, 그 의미입니다.

내가 무슨 뜻인지 설명하려면 먼저 실행 한 테스트가 있다고 가정하고 테스트는 특정 디렉토리에 여러 파일을 만드는 부작용이 있다고 가정합니다. 그런 다음이 파일을 사용하는 두 번째 테스트를 수행했습니다. 이제는 주문이 편리 할뿐만 아니라 필수 항목입니다. 두 번째 테스트는 의미가 없습니다. 하네스 작성자는 이러한 테스트가 단일 테스트 또는 이와 같은 테스트를 수행하는 단위 테스트 제품군을 사용하지 않아야한다고 주장합니다.

'잘못하고있는'것에 관해서, 나는 당신이 틀린 일을하고 있다는 것을 모릅니다. 저자가 의도하지 않은 방식으로 도구를 사용하려고하는 것 같습니다. 개인적으로 CRUD 작업을위한 통합 테스트 스위트를 작성했다면 MS Test 또는 단위 테스트 프레임 워크를 전혀 사용하지 않을 것입니다. 나는 그런 일을하도록 고안된 도구를 사용하거나 CRUD 작업을 수행하고 결과를보고하여 데이터 액세스 DLL을 실행하는 작은 응용 프로그램을 작성합니다.

자신의 홈 롤링 유틸리티를 시작 프로젝트로 신속하게 실행하거나 빌드로 호출 할 수 있도록 솔루션에 포함시킬 수 있습니다.약간의 시간을 추가하고 싶다면 작은 보고서를 생성하거나 출력을 MS Test (테스트 XML 파일)와 동일한 출력으로 만들 수도 있습니다.

+0

답장을 보내 주셔서 감사합니다. MS 테스트를 단위 테스트 프레임 워크로 본 적이 없으며이 단어조차도 UI에서 자주 사용됩니다. 데이터베이스를 첨부하고 응용 프로그램 UI의 동작을 확인하며 필자가 시험을 만들 때 파일을 사용해야 할 가능성이 있습니다. 이것은 이론적으로 설명 된 것처럼 단위 테스트를 작고 쉽게 실행할 수있는 것보다 통합 및 시스템 테스트와 비슷합니다. 나에게 잘못된 말은하지 말아라. 그러나 나는 Roy Osherove가 다음과 같이 썼을 때 이해하려고 노력했다. "MS test is IE6" –

+0

글쎄, 개인적으로 단위 테스트를 위해서만 사용하지만, 나는 당신의 요점을 보았다. 그들이이 철학을 가지고 테스트를 위해 파일 및 기타 등등을 요구하는 것과 같은 일을 할 수있게하는 것은 이상한 것 같습니다. 나는 xUnit 배경에서 왔기 때문에 MS Test에는 몇 가지 불만이있다. 당신이하고있는 일 (질서있는 테스트, 그것은 NUnit이나 MBUnit이 테스트 순서를 지원하는지 보는 것만 큼 가치가있을 것입니다. 어쨌든 더 나은 결과를 얻으려면 Firefox와 Chrome을 MSTests의 IE6로 생각하십시오 :)) –

관련 문제