1

나는 ascts_as_tenant를 사용하여 멀티 테넌시 응용 프로그램을 보유하고 있습니다. 범위를 테스트하는 스펙을 작성하려고합니다. 그래서 User.active의 출력을 테스트하고 싶습니다. 이 같은 그러나, 나는 그것이 current_tenant를 사용하도록 acts_as_tenant 기능을 사용하기 때문에 그것은 단지 활성화 나열 유효성을 검사 할 수 방법에 잃었어요 다음rspec을 사용하여 acts_as_tenant를 테스트합니다.

it "returns a correct active user" do 
    user_active = Fabricate(:user, curremp: true) 
    user_scope2_active = Fabricate(:user, curremp: true) 
    user_not_active = Fabricate(:user, account_id: user_active.account_id, curremp: false) 
    expect(User.active).should include(user_active) 
    #expect(User.active).to_not include(user_scope2_active) 
    expect(User.active).to_not include(user_not_active) 
end 

같은 코드와 잘 작동 일반적으로

1 명의 세입자로부터의 사용자. 나는 이것이 이전에 행해졌다고 확신하지만 아직 그것에 대한 문서를 찾지 못했습니다.

그러므로 rspec을 사용하여 acts_as_tenant 사용자 모델을 테스트하려면 어떻게해야합니까? 일반적으로

, 당신이 당신의 단위 테스트에 세입자로 정보를 범위 지정을 처리 할 필요가 없습니다 :

답변

5

이 우리가하는 일입니다. 따라서 이러한 검사를 쓰는 것은 아무런 범위 설정이없는 것처럼 작성하십시오.

유일한 예외는 범위 지정과 관련된 항목을 구체적으로 테스트하려는 경우입니다. 우리는 이것을 매우 드물게합니다. Acts_as_tenant에는 범위 지정을 테스트 할 자체 테스트 스위트가 있습니다 (하지만 필자가 작성한 이후로 말하고 싶습니다). 그것은 당신이 필터 (전무로 설정) 후에 그 임차인을 청소하는 것이 다음 중요

ActsAsTenant.current_tenant = Account.first 

을하거나 :

당신이 당신의 단위 테스트에 AAT를 처리해야하는 경우 직접 current_tenant을 설정할 수 있습니다 디버그 지옥에있을거야.