2017-03-21 1 views
0

레일 5에 테스트를 쓰려고합니다. 생성 된 스캐 폴드 테스트를 조금 수정했습니다. 그러나 이것은 조명기 어딘가에서 가져와이 소스를 사용하여 테스트를 실행하는 것처럼 보입니다.레일 5 통합 테스트는 조명기 값만 사용합니다

컨트롤러에서 'create'메소드는 이메일이있는 사용자 한 명과 URL이있는 페이지 목록을 허용합니다.

내 테스트 클래스 :

<Page id: nil, url: "a", user_id: 980190963, created_at: nil, updated_at: nil> 

그러나 테스트가 compleats 후 내 데시벨 같은 것입니다 :

require 'test_helper' 

class UsersControllerTest < ActionDispatch::IntegrationTest 

    test "test" do 
    assert_difference('User.count', 1) do 
     post users_url, params: { user: { email: '[email protected]' }, pages:[{url:'a'},{url:'b'},{url:'c'}] }, as: :json 
    end 

    assert_response 201 
    end 
end 

-------------------- fixtures -------------------------- 
_______PAGES.YML______ __________USERS.YML__________ 
| one:     | | one:      | 
| url: one.html  | | email: [email protected] | 
|      | |        | 
| two:     | | two:      | 
| url: pageTwo.html | | email: [email protected]  | 
|______________________| |_____________________________| 

디버깅, 바로 전에 페이지를 저장하면 값이 올바른지

--USERS 

id  |email    |created_at   |updated_at   | 
----------|------------------|--------------------|--------------------| 
980190962 |[email protected] |2017-03-21 17:43:50 |2017-03-21 17:43:50 | 
298486374 |[email protected]  |2017-03-21 17:43:50 |2017-03-21 17:43:50 | 


--PAGES 

id  |url   |contato_id |created_at   |updated_at   | 
----------|-------------|-----------|--------------------|--------------------| 
980190962 |one.html  |   |2017-03-21 17:43:50 |2017-03-21 17:43:50 | 
298486374 |pageTwo.html |   |2017-03-21 17:43:50 |2017-03-21 17:43:50 | 

이메일 및 URL에 대한 내 값이 저장되지 않는 이유는 무엇입니까? fk도?

감사합니다.

답변

0

rspec는 보이지 않지만 대답하려고합니다.

레일을 사용하면 테스트를 실행할 때 데이터베이스 테이블을 정리할 수 있으므로 데이터베이스의 모든 데이터를 정리하고 데이터베이스에 저장된 새로운 조명기 데이터를 만들 수 있습니다.

+0

감사합니다. Rails가 기본적으로 모든 테스트 데이터를 지우는 것을 알기가 어렵습니다. 문서에는 명확한 방법으로 언급되어 있지 않습니다. – Aleph