엔진 개발과 테스트 용 더미 응용 프로그램에 대한 기사가 많이 있습니다.RSpec을 사용하여 실제 앱에 대한 Rails3 엔진을 개발하는 방법은 무엇입니까?
여기서는 독립 실행 형 엔티티가 아니지만 실제 Rails 3 응용 프로그램에 종속 된 엔진을 개발 중입니다. 엔진의 작업은 자체 테이블과 모델 매핑이있는 레거시 시스템에서 데이터를 가져 오는 것이므로 우리는 여전히이 코드를 엔진에 저장하고 앱에 포함시키지 않기를 원하며 결국에는 다시 제거하려고합니다.
기존 레거시 테이블과 새 스키마 간의 데이터 매핑이 복잡하므로 엔진을 TDD (rspec 사용)해야합니다.
- 나는 enginex gem을 사용하여 Jose Valim's book "Crafting Rails Appliations"을 따라갔습니다.
/spec/dummy_app
을 실제 Rails 3 앱을 가리키는 자식 서브 모듈로 바꿨습니다.- 실제 앱의 Gemfile이 엔진을 가리 키지 않고 엔진을 요구하기 위해
config/application.rb
을 수정할 수 없기 때문에 엔진에서 모델을로드하는 데 문제가 있습니다 (정의되지 않은 심볼 오류). 이 책의 15-16 페이지에 설명 된대로 더미 응용 프로그램이 수행합니다.) - 부하 경로
$:
에lib
폴더가 포함되어 있고 경로는spec_helper
입니다. require
을spec_helper.rb
에 두어도 문제가 해결되지 않았습니다.- 실제 앱의 부팅 순서에 연결하여 실제 앱 코드를 수정하지 않고 엔진이 필요하도록 내부 레일 API (또는 영리한 원숭이 패치)가 있는지 궁금합니다 (하위 모듈에 있음).).
- 또 다른 이슈는 제가 2 개의 젬 파일 (엔진과 엔진 중 하나)을 가지고 있으며, 엔진이 활성화되면 둘 다 사용해야한다는 것입니다.
생각들?