본문 바로가기

TDD

(2)
단위테스트가 아닌 것들, 팁 레거시코드 활용 전략p.43단위테스트는 빠르게 실행된다. 빠른 속도로 실행되지 않는 단위테스트는 단위테스트가 아니다. 다음과 같은 일을 한다면 그것은 단위테스트가 아닐 것이다.1. 해당 테스트가 데이터베이스와 통신한다.2. 네트워크를 통해 통신한다.3. 파일시스템을 건드린다.4. 실행하기 위해 구성 파일 편집처럼 환경을 바꾸는 작업(.cfg나 .ini 파일 등의 수정)을 해야 한다. 이런 일을 하는 테스트가 나쁜 것은 아니지만 이와 같은 코드를 작성하기 위해 보통 단위테스트 하니스 내에서 작성하게 된다. 하지만 이 경우, 진정한 단위테스트 루틴과 구별하는 것이 좋다. 그렇게 함으로서 변경시킬 때마다 사용할 수 있고 빠르게 실행되는 일련의 테스트 루틴을 확보 할 수 있기 때문이다. NUnit에서는 카테고리..
[NUnit] 사례TDD - 완벽하지 않은 테스트 확장메서드를 이용해서 byte 배열을 Int32로 변환하는 정적메서드를 만들었다.모양은 아래와 같았다. (빅엔디안이라서 Reverse로 순서를 바꾸어주었다.) public static Int32 FromBytes(this byte[] value) { byte[] t = new byte[value.Length]; Array.Copy(value, t, value.Length); Array.Reverse(t); return BitConverter.ToInt32(t, 0); } 위에 대한 테스트는 아래와 같았다. [Test] public void FromBytesTest() { Byte[] b = new Byte[] { 0x29, 0x4A, 0xA6, 0xA5 }; Assert.AreEqual(0x294AA6A..