문제

나는 시작을 시도와 테스트 교체 이 라이브러리를 다시 로드 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

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top