propel 모델이나 criteria 객체를 입력으로 사용하는 클래스를 unittest하고 싶습니다.propel 쿼리가있는 클래스를 입력으로 테스트
이것은 자신의 모델이없는 Symfony2 번들이므로 입력 유형을 모방 한 클래스를 사용하고 정적 값을 반환하는 getter 및 setter를 사용할 수 있다고 생각하고 싶습니다.
이것이 가능한가? 누구든지이 작업을 수행하는 데 경험이 있습니까? 내가 질문 권리를 얻는 경우에
propel 모델이나 criteria 객체를 입력으로 사용하는 클래스를 unittest하고 싶습니다.propel 쿼리가있는 클래스를 입력으로 테스트
이것은 자신의 모델이없는 Symfony2 번들이므로 입력 유형을 모방 한 클래스를 사용하고 정적 값을 반환하는 getter 및 setter를 사용할 수 있다고 생각하고 싶습니다.
이것이 가능한가? 누구든지이 작업을 수행하는 데 경험이 있습니까? 내가 질문 권리를 얻는 경우에
, 당신은 단순히 스텁을 원 :
class PropelModelStub {
public $someparam;
private someMethod(){
// ..
}
}
스텁 클래스에 사용되는 모든 메소드를 구현하고 일이 뭐죠 어떻게 든 추적해야합니다. 이것은 당신의 수업과 당신이 시험하고 싶은 것에 달려 있습니다. 함수의 사용법이나 함수에 전달 된 속성을 추적 할 수 있습니다. 테스트에
간단히 사용은 : 여기
public function testMyClass(){
$stub = new PropelModelStub();
$classToTest = new MyClass($stub);
classToTest->whatever();
$this->assertEquals('ValueIExpect', $stub->someparam);
}
당신은 당신의 클래스로 스텁을 통과하고 당신이 당신의 코드에서와 같이 다음이 클래스를 사용합니다. 그런 다음 스텁에 올바른 값이 있는지 확인합니다. 스텁
당신의 PropelModel 항상 몇 가지 기본 클래스에서 확장하는 경우에서
phpunit을 빌드, 당신은 당신의 모형을 만들 phpunit을 사용할 수 있습니다. 이 일들이 방법으로 쉽게 또한 코드를 감소 :
$stub = $this->getMock('\\Namespace\\of\\PropelModel');
$stub ->expects($this->once())
->method('someMethod')
->will($this->returnValue(1));
이에 대한 자세한 내용은 here를 참조하십시오.