2011-01-25 2 views
1

저는 테스트 프레임 워크에 대해 새삼스럽게 생각합니다. Moq에 대해 읽고 있었고 this introductory 포스트는 이전에 보지 못했던 테스트 구성 방법을 사용했습니다. 더 많은 연구 결과에 따르면 .Net 세계의 우리는 BDD 및 컨텍스트/사양 (CS) 테스트라는 용어를 통합하는 경향이 있습니다. 나는 그 논쟁에 참여하고 싶지 않습니다 - 저는 주로이 시험 작문 스타일을 쓰는 것에 관심이 있습니다.MSTest를 사용하여 컨텍스트/사양 테스트를 수행 할 수 있습니까?

This article이 접근법을 다시 보여주고 테스트 프레임 워크를 통해 사양을 구성 할 수있는 기본 클래스를 명시 적으로 사용합니다.

이 문제는 MSTest에서 각 테스트마다 테스트 픽스처를 한 번만 초기화 할 수있는 인스턴스 메서드를 볼 수 없다는 것입니다. 내가 볼 수있는 가장 좋은 것은 테스트 클래스의 생성자이지만 조금 잘못되었다고 느낀다. NUnit에서 [TestFixtureSetup]을 사용할 수 있습니다. Visual Studio에 내장 된 테스트 프레임 워크를 사용하는 동일한 기능이 있습니까?

편집 이후 필자는 유연성이 필요한 NUnit으로 이동했습니다.

답변

2

몇 가지 조사를 한 후 NUnit을 사용하도록 이동했습니다. MSTest에 비해 NUnit을 선호하는 데에는 여러 가지 이유가 있지만,이 특정 문제와 관련하여 MSTest에서 지원하는 클래스 중심의 초기화 메서드 (모든 테스트에서 실행되지는 않음)는 내가 찾는거야.

Jason이 지적한대로 [ClassInitialise]은 MSTest에서이 정적, 클래스 전체 초기화를 제공합니다. Fixture의 테스트가 실행되기 전에 instance 메소드가 한 번 실행되도록 NUnit에서 발견 된 [TextFixtureSetup]의 동작을 모방하는 방법은 실제로 없습니다.

+0

당신은 현명한 선택을했습니다. 개인적으로, 훨씬 빠르고, MSTest에서 찾을 수없는 추가 기능을 가지고 있기 때문에, 내 테스트를 위해 NUnit을 사용합니다. –

1

MSTest에 대해 NUnit의 [TestFixtureSetUp]을 복제하려면 [ClassInitialize]을 시도하십시오. Here's 그 정보를 발견 한 링크. This은 도움이 될만한 유용한 블로그 기사입니다.

+0

안녕하세요 Jason, 저는 조명기의 모든 테스트에 앞서 전체 조명기에 대해 한 번 실행될 인스턴스 메서드에서 사용할 수있는 무언가를 찾고 있습니다. 불행히도 ClassInitialize는 정적 메서드에만 적용됩니다. 포인터를 가져 주셔서 감사합니다. –

관련 문제