문제
나는 시작을 시도와 테스트 교체 이 라이브러리를 다시 로드 DB 에서는 모델 개체 새롭게됩니다.
첫 시도 다음과 같이 나타납니다.
class Tests_User extends PHPUnit_Framework_TestCase
{
public function setUp()
{
Doctrine_Manager::connection('mysql://user:pass@localhost/testdb');
Doctrine::createDatabases();
Doctrine::createTablesFromModels('../../application/models');
}
public function testSavingWorks()
{
$user = new User();
$user->save();
}
public function testSavingWorksAgain()
{
$user = new User();
$user->save();
}
public function tearDown()
{
Doctrine::dropDatabases();
}
}
문제는 경우 설치 프로그램()를 호출에 대해 다시 두 번째 테스트,createTablesFromModels()이 실패하는,그래서 오류가 발생하기 때문에 아무도 테이블의 존재한다.
나는 정말로 감사하는 방법의 예는 다른 사람이 reinitialised 교리에 대한 연결 이 라이브러나 다른 단위 테스트용입니다.
해결책
그러니까 createTablesFromModels 포함되어 있는 파일에서 다음을 비교한 목록의 정의 클래스의 전과 후,왜 그것은 작동하지 않는다.
시퀀스는 다음과 같이 작을 때 반복되:
Doctrine::loadModels($path);
Doctrine::createTablesFromArray(Doctrine::getLoadedModels());
다른 팁
Ocramius 에서이 요지를 확인하십시오. 이는 데이터 고정 장치를 사용하여 테스트 할 수 있음을 보여줍니다. https://gist.github.com/ocramius/3994325
제휴하지 않습니다 StackOverflow