나는 좀 더 고급 질문이라고 생각하기 때문에 이것에 대한 경험이 많은/경험 많은 Ruby/Rails 개발자의 답을 찾고있을뿐입니다.테스트 (rspec)에서 다른 모델이 많이 있습니까? 고급
저는 AR 모델에 동작을 추가하는 작업을하고 있습니다. 많은 다른 연관성 (has_many, habtm, has_one 등)에 대해 테스트해야하며 여러 옵션이 연결 (예 : foreign_key)에 전달 될 때 동작을 테스트해야합니다. 이제는이 모든 다른 모델을 사용하여 데이터베이스에서 동일한 테이블을 사용할 수 있습니다. 필드 자체는 변경하지 않아도되고 has_many, belongs_to 등을 통해 지정된 동작 만 가능하기 때문입니다. 다양한 옵션이 있으므로 모델 수가 매우 많습니다.
우선 가독성을 위해 테스트 자체/모델 옆에 모델 정의를 포함하는 것이 좋지 않을 것이라고 생각합니다 (동일한 모델을 사용하는 테스트가 여러 개인 경우 함께 그룹화합니다. before 메소드 사용). 이것이 내 목표 중 하나입니다. 동의하지 않으면 의견을 말할 수 있습니다.
내가 잘 모르겠다는 점은 TaskWithManySubtasksAndForeignKey 대신에 "Task"와 같은 모든 테스트에서 모델의 단순/동일한 이름을 유지하려고한다는 것입니다. 문제는 의미 있고 간단한 이름을 찾기가 너무나 많은 모델이 있다는 것입니다. 나는 이것이 확실하지 않다. 같은 이름을 사용한다. 상수이기 때문에 조금 문제가있다. 프록시 클래스가있는 솔루션이 있지만 이것이 최적의 솔루션이라고 생각하지 않습니다. "taskModel"과 같은 변수를 사용하는 것을 고려하고 있었지만 약간 길고 특이한 것처럼 보였습니다.
마음에 떠오르는 다른 옵션 중 하나는 쉽게 들릴 수 있지만, 기존 연결을 제거한 다음 새 연결을 정의하는 것입니다. 그래서 예. has_many를 추가 한 다음 제거하고 habtm을 추가하십시오.
어떻게 하시겠습니까?
덕분에, 거 이것을 받아 들일 :) – mrbrdo