2014-09-30 6 views
0

표준 레일 테스트 프레임 워크를 사용하여 고정 장치가있는 테스트 유닛을 사용하고 있습니다. capybara를 사용하여 일부 테스트를 실행 중이며 삽입 후 내 모델 찾기를 실행할 때 마지막으로 삽입 된 레코드를 찾을 수 없습니다. 내 데이터베이스 편집기를 열고 레코드가 제대로 삽입되었는지 확인합니다. 나는 그것이 거래에 있다는 것을 알아낼 수 없다. 그리고 그 데이터를 얻는 방법이나 그것에 도달 할 수있는 방법이있다. 심지어 디버거 창에서 원시 SQL 사용하여 시도하고 작동하지 않습니다. 어떤 제안이라도 좋을 것입니다.테스트 유닛 Capybara가 마지막으로 레코드를 삽입 할 수 없습니다.

답변

0

표준 레일 테스트 프레임 워크는 데이터베이스 트랜잭션에서 각 테스트를 실행합니다. 테스트가 완료 되 자마자 데이터 변경 사항이 롤백됩니다. 이렇게하면 각 테스트가 동일한 데이터로 시작될 수 있고 테스트가 임의의 순서로 실행되어 테스트간에 종속성을 만들지 않도록 할 수 있습니다.

+0

예, 이해합니다. 트랜잭션에 다시 도달하여 해당 트랜잭션의 일부인 마지막 레코드를 찾는 방법이 있는지 궁금합니다. 나는 그렇지 않다고 생각하니? – wallerjake

+0

있을지 모르지만 나는 그것을 모르고있다. 데이터베이스가 자동 증가 기본 키를 사용한다면 (대부분),'Widget.order (: id) .last'를 시도 할 수 있습니다. – blowmage