기능 테스트 중의 부하 자원 문제
묘사
여보세요,나는 두 개의 컨트롤러가 있는데, 하나는 입찰이고, 다른 하나는 임무이다.할당 컨트롤러 load 와 AU authorize 자원이 완전히 정상적으로 작동하고 할당 모델에서 관련 대상을 자동으로 불러옵니다. 그러나 기능 테스트를 실행할 때 관련 대상을 불러오지 않습니다.나중에, 나는 이 두 모델을 끼워 넣으려고 시도했는데, 그것은 성공했다.무슨 문제인지 검사해 주시겠어요?
class AssignmentsController < ApplicationController load_and_authorize_resource :nested => [:tender,:assignment] end
토론 #1
Can you post your functional test along with the error/output you're getting?
토론 #2
Here is test and error output but i think it will not help you in resolving this problem.We have also faced cancan exception when there are no rules defined in ability file but in this case there is no cancan exception. Thanks
context "take supervisor role back" do setup do put :update, {:tender_id=>@tender.id, :id=>@new_assignment.id, :assignment=>{:role_id=>@verifier_role.id,:supervisor=>"0"}} end
should_set_the_flash_to I18n.translate('flash.assignment.update.successful')
should "verify supervisor role has been taken back from colleague and now it has tender_verifier" do
assert_equal @new_assignment.reload.role_id, @verifier_role.id
end
end
오류 출력
NoMethodError: 정의되지 않은 방법company_id' for nil:NilClass
app/models/assignment.rb:304:in
설정 대입 속성'
응용 프로그램/모델/작업.rb:86
애플리케이션/디렉터/할당/디렉터rb:60:inupdate'
haml (2.2.21) [v] rails/./lib/sass/plugin/rails.rb:20:in
프로세스
테스트/기능/할당\컨트롤러\테스트.rb:540:in__bind_1271827543_192341'
/opt/ruby-enterprise-1.8.7-2009.10/lib/ruby/gems/1.8/gems/thoughtbot-shoulda-2.10.2/lib/shoulda/context.rb:369:in
호출
/opt/ruby-enterprise-1.8.7-2009.10/lib/ruby/gems/1.8/gems/thoughtbot-shoulda-2.10.2/lib/shoulda/context.rb:369:inrun_current_setup_blocks'
/opt/ruby-enterprise-1.8.7-2009.10/lib/ruby/gems/1.8/gems/thoughtbot-shoulda-2.10.2/lib/shoulda/context.rb:368:in
마다'
/opt/ruby-enterprise-1.8.7-2009.10/lib/ruby/gems/1.8/gems/thoughtbot-shoulda-2.10.2/lib/shoulda/context.rb:368:inrun_current_setup_blocks'
/opt/ruby-enterprise-1.8.7-2009.10/lib/ruby/gems/1.8/gems/thoughtbot-shoulda-2.10.2/lib/shoulda/context.rb:360:in
모든 설정 블록 실행
/opt/ruby-enterprise-1.8.7-2009.10/lib/ruby/gems/1.8/gems/thoughtbot-shoulda-2.10.2/lib/shoulda/context.rb:364:inrun_parent_setup_blocks'
/opt/ruby-enterprise-1.8.7-2009.10/lib/ruby/gems/1.8/gems/thoughtbot-shoulda-2.10.2/lib/shoulda/context.rb:348:in
테스트: 기능을 토론 #셋
Hi Ryan으로 편집,
이전에 나는 "나중에 나는 이 두 모델을 끼워 넣으려고 시도했는데, 결과는 모두 성공했다."라고 썼다.이것은 오류입니다. 다음 코드를 작성하는 것은 테스트 용례에서 작동하지 않기 때문에 @assignment=assignment를 실행해야 합니다.이 문제를 수정하려면 (params[:id])를 찾습니다.고마워요 고마워요
클래스 할당 컨트롤러 < 응용 프로그램 컨트롤러
리소스 로드 및 승인: 중첩 =>[: 입찰,: 할당]
end 토론 #4
플러그인에서 값을 언급해서는 안 됩니다. 컨트롤러가 있기 때문입니다.그것을 제거해 보아라.
클래스 할당 컨트롤러 < 응용 프로그램 컨트롤러
리소스 로드 및 승인: 중첩 =>: 입찰
끝맺다
그 후@assignment
가 여전히nil
인지 알 수 있게 해줘.토론 #5
시험해 보았지만, 대상을 정확하게 불러오지 않았고, 필드가 부족합니다.다음 테스트 용례와 컨트롤러 사이의 기록 상태를 확인하십시오.고마워요 고마워요
테스트 용례에서 할당된 상태:
할당: 0x2560354{
:id=>10291,
: state=> 수락됨,
: 발송 주소=>2010년 4월 22일 목요일 13:38:00 GST+04:00,
: e-메일 => 없음,
:assignable_type=>“Tender”,
:assignable_id=>1319,
: 마감일자=>2010년 4월 29일 목요일 13:38:00 GST+04:00,
: 캐릭터 id=>11115,
: 양수인\사용자\id=>8973,
: 양수인 회사 id=>3212,
: 양도인 회사 id=>3212,
: 작성 시기 = > 2010년 4월 22일 목요일 13:38:00 GST+04:00,
: 업데이트: 2010년 4월 22일 목요일 13:38:00 GST+04:00
}
편집 작업 중 컨트롤러의 할당 상태:
분배 id:nil, 상태:nil, 발송 주소: "2010-04-22 09:38:00", 이메일:nil, 분배 유형: "입찰", 분배 id:1319, 마감일: "2010-04-29 09:38:00", 역할 id:nil, 분배 사용자 id:8973, 분배 회사 id:nil, 분배 회사 id:nil, 창설 주소:nil, 업데이트 주소:nil토론 #6
, 여기 무슨 소용이 있는지 정말 모르겠어요.그러나 중첩된 리소스가 CanCan 1.3에서 완전히 재설정되었으므로 문제가 해결되었는지 다시 시도해 보십시오.만약 네가 이곳에서 평론을 발표하지 않고 이 문제를 다시 묘사한다면 나는 해결 방안을 찾기 위해 노력할 것이다.토론 #7
고마워요, 리안 씨. 제가 캔캔 1.3과 대조해서 알려드릴게요.
Reference
이 문제에 관하여(기능 테스트 중의 부하 자원 문제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://github.com/ryanb/cancan/issues/58
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
토론 #셋
Reference
이 문제에 관하여(기능 테스트 중의 부하 자원 문제), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://github.com/ryanb/cancan/issues/58텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)