스텁과 모의가 테스트에 매우 유용함을 발견했습니다. 하지만 한 가지는 궁금합니다. 예를 들어 명확하게 보여줄 것이라고 생각합니다.테스트 된 클래스의 메서드를 스텁하여 다른 메서드를 테스트하십시오.
Class A {
public function isOk() {
// some work
}
public function iAmDepend() {
if ($this->isOk()) {
// do work
}
}
}
class TestA {
public function testIsOk() {
// Test itOk here
}
public function testIAmDepend() {
mock(A)->method(isOk)->return(true);
// tests for iAmDepend
}
}
이렇게하는 것이 현명합니까? 테스트 된 클래스의 스텁 메소드. 아니면 규칙을 어기 는가?
추신. 나는 코드
단위 테스트 용어의 종속성은 일반적으로 클래스가 종속되는 다른 클래스 *로 간주되며 동일한 클래스의 * 메소드 *가 아닙니다. 예를 들어, 일반적으로 클래스 A의 두 메소드를 조롱하고이를 단위 테스트로 테스트 할 다른 클래스 (예 : classB)의 조롱 된 종속성으로 제공합니다. – StuartLC
일반적인 상황을 설명했습니다. 그러나 이상한가 궁금합니다. 이 테스트 방법을 권장하지 않는다는 진술을 이해해야합니까? 어쩌면 PHP에서 내가 스텁하려는 메소드를 선택할 수 있다는 점이 중요합니다. –