2011-10-12 3 views
0

사용자 (관리자)가 이미 데이터베이스에 있습니다. 나는 오이 테스트를 실행하고 다른 사용자를 만듭니다. 시나리오를 실행 한 후 2 명의 사용자를 예상했지만 1 명이있었습니다. 내 실수는 어디에 있습니까? 오이 일 수 있습니다 오이를 통해 생성되지 않은 경우 db의 기존 엔티티를 계산하지 않습니다 ...예상 수량과 일치하지 않는 테스트를 실행 한 후의 항목 수량

답변

0

테스트 할 때마다 테스트 데이터베이스가 지워집니다. 오이 단계의 일부로 관리자를 만들어야합니다. 아마도 "배경 :"이 가장 좋은 방법 일 것입니다.

편집는 관리자로 로그인 같은 것을 수행합니다

Background: 
    Given I am an admin 
    And I have logged in 

    Scenario: Create a user 
    Given I go to the new user page 
    And I fill in "email" with "[email protected]" 
    And I submit the form 
    Then there should be 2 users 

는 희망이 당신이 그 단계는 자신을있는 정의를 쓸 수있어합니다. "내가 관리자 인 것을 감안할 때"는 관리자 사용자를 만들고 "로그인했습니다"는 로그인 페이지를 통해 관리자로 로그인합니다. 단계

Feature: "Manage Users" 
    Background: I should sign in firstly 
    Given I am have an administrator 
    When I am on the login_page 
    And I fill in "session_login" with "administrator" 
    And I fill in "session_password" with "password" 
    And I press "Sign In" 
    Then I should see "You are logged in" 

: 기능에서 :

Given /^I am have an administrator$/ do 
    User.create!(:login => 'administrator', :locale => 'en', :password => 'password', :email => '[email protected]') 
    User.find_by_login('administrator').should_not be nil 
end 

그리고 난에 로그인 할 수 없습니다

+0

삭제 된 경우 관리자 계정을 사용하여 어떻게 로그인 할 수 있습니까? 그리고 "다른 사용자를 만들기 전에 1 명의 사용자가 있습니다"라는 줄을 실행할 때 1 (사실)을 얻었습니다. –

+0

이 동작은 Test :: Unit의 조명기로 인한 간섭 일 수 있습니까? –

+0

내 편집보기 @Mochnatiy – bricker

0

이 내 코드입니다.! 데이터베이스 정책을 'transaction'에서 'truncation'으로 변경했습니다. 스레드 완료

+0

로그인하려고하면 데이터베이스에 사용자가 없지만 첫 번째 단계에서 만들었습니다. 환경을 올바르게 구성하지 않았을 수 있습니다. –

0

고정

관련 문제