2009-11-01 4 views
0

웹 페이지 제작에 테스트 중심 개발을 적용하려고하는데 데이터베이스를 사용하는 데 문제가 있습니다. 나는 단위 테스트에 Cake 1.1, PHP5 및 SimpleTest를 사용하여 개발 중이다.데이터베이스가 즉시 삽입되지 않습니다.

내 문제는 내가하는 테스트를해야한다는 것입니다 : (. 내 메인 프로그램에서 함수를 사용하여)

  1. 그 행이 삽입 된 경우 직접 SQL 문을
  2. 테스트를 사용하여 행을 삽입을
  3. 삽입 된 행을 삭제합니다.

1 단계와 3 단계 모두 제대로 작동하지만 2 단계는 실패합니다.

행을 삭제하지 않고 테스트를 실행 한 다음 테스트를 다시 실행했지만 처음에는 단계 1을 제거하고 (다시 한번 간단하게 해당 행에 주석을 달았 음) 문제없이 테스트가 통과되었다는 것을 인식하는 것이 중요합니다 .

PHPMyAdmin에서 SQL 문을 직접 실행 해 보았습니다 (완벽하게 작동합니다).

+0

하나 이상의 트랜잭션에서 발생하는지 알아낼 수있는 코드가 있습니까? –

+0

실제로 커밋을 추가했지만 여전히 작동하지 않았습니다. 생각에 감사드립니다. –

답변

3

모든 단계가 동일한 트랜잭션에서 실행됩니까?

그렇지 않은 경우 2 단계는 1 단계가 수행 될 때까지 1 단계의 결과를 볼 수 없습니다.

+0

그들은 실제로 분리 된 SQL 문입니다 ... 동일한 PHP 함수 안에 있지만 동일한 트랜잭션이라고 생각하지 않습니다. –

1

테스트를 시도 할 때 아직 커밋되지 않은 트랜잭션 내부에서 삽입이 발생하고있는 것처럼 들립니다.

몇 가지 샘플 코드를 제공해 주시겠습니까?

0

1 단계에서 트랜잭션을 커밋 하시겠습니까?