- SetUp : 테스트를 위한 설정값 초기화(Microsoft.VisualStudio.TestTools.UnitTesting 에선 TestInitialize)
- TearDown : 테스트를 위한 설정값 청소(Microsoft.VisualStudio.TestTools.UnitTesting 에선 TestCleanup)
- TestFixture : 테스트 클래스(Microsoft.VisualStudio.TestTools.UnitTesting 에선 TestClass)
- Test : 테스트 메소드(Microsoft.VisualStudio.TestTools.UnitTesting 에선 TestMethod)
- ExpectedException : 제대로된 예외가 발생하는지 검사
- Ignore : 테스트 무시
- Category : 테스트의 카테고리 설정(Microsoft.VisualStudio.TestTools.UnitTesting 에선 TestCategory)
- 하부 구현을 교체할 수 있도록 인터페이스 추출
- 테스트할 클래스에 스텁 구현 주입
- 생성자 레벨에서 인터페이스 받기
- get 또는 set 프로퍼티에서 인터페이스 받기
- 메서드 호출 바로 직전에 스텁 받기
- 추상 테스트 인프라 클래스 핵심적인 공통 인프라를 포함하는 추상 테스트 클래스를 만들고 다른 테스트 클래스를 파생시킨다.
- 템플릿 테스트 클래스 파생 클래스에서 구현해야 하는 메서드를 포함하는 추상 클래스를 만든다.
- 추상 테스트 드라이버 클래스 파생 클래스에서 상속은 받지만 다시 구현할 필요는 없는 테스트 메서드 구현을 담는 추상 테스트 클래스를 생성한다.
- 단일 책임 원칙(SRP:Single Responsibility Principle):하나의 클래스는 하나의 책임을 가져야한다. 단 하나의 변경 이유만을 가져야한다.
- 개방 폐쇄 원칙:(OCP:Open-Closed Principle):하나에 모듈에 수정을 가할때 다른 모듈들도 모두 고치지 않도록 한다. 이를 위해서 확장에 대하여 열려있고, 수정에 대해서 닫혀있어야 한다. 추상화는 개방-폐쇄 원칙의 핵심 요소이다.
- 리스코프 치환 원칙(LSP:Liskov substitution principle):부모 클래스로부터 파생된 자식 클래스의 객체는 수정없이 언제 어디서나 부모클래스 객체로 대체될 수 있어야 한다.
- 인터페이스 분리 원칙(ISP:Interface Segregation Principle):클라이언트가 자신이 이용하지 않는 메서드에 의존하지 않아야 한다.
- 의존관계 역전 원칙(DIP:Dependency Inversion Principle):상위 모듈은 하위 모듈에 의존하면 안된다. 추상화된 것은 구체화된 것에 의존하면 안된다.