비디오 게임의 스티어링 시스템에 대한 단위 테스트를 작성하고 있습니다. 시스템에는 여러 가지 동작이 있습니다 (이유 영역 A로 인해이 영역을 피하고,이 영역 B로 인해이 영역을 피하십시오. 각각이 영역의 맵에 약간의 컨텍스트를 추가 함) 별도의 함수가 맵을 구문 분석하고 원하는 이동을 생성합니다.
동작에 대한 단위 테스트 작성 방법을 결정하는 데 문제가 있습니다. TDD가 제안했듯이, 나는 행동이 원하는 움직임에 어떻게 영향을 미치는지에 관심이 있습니다. 예를 들어, 이유-이유-를 피하면 제안 된 잘못된 위치에서 멀어 지도록 이동해야합니다. 실제로 행동이 맵에 컨텍스트를 추가하는 방법과 이유는 중요하지 않으며 원하는 움직임이 위치에서 멀어 지기만합니다.
그래서 각 행동에 대한 나의 테스트는 행동을 설정하고 그것을 맵에 쓴 다음 맵 파싱 기능을 실행하여 원하는 움직임을 해결합니다. 그 움직임이 내 사양을 충족하면 행복합니다.
그러나 이제 내 테스트는 올바르게 작동하는 동작과 올바르게 작동하는 맵 구문 분석에 의존합니다. 구문 분석 기능이 실패하면 몇 가지가 아니라 수백 가지의 실패한 테스트를 받게됩니다. 많은 테스트 작성 안내서에서는 이것이 나쁜 생각이라고 제안합니다.
그러나 맵을 조롱하여 동작의 출력에 대해 직접 테스트하면 구현과 너무 밀접하게 연결되어 있습니까? 약간 다른 동작을 사용하여지도에서 동일한 원하는 움직임을 얻을 수 있다면 테스트는 여전히 통과해야합니다.
그래서 지금인지인지 불협화음에 시달리고 있습니다. 이러한 테스트를 구성하는 가장 좋은 방법은 무엇입니까?