내 테스트 (레일)에서 "고유성 : 참"유효성 검사가 작동하지 않는 이유는 무엇입니까?

Reisespieces

Rails 앱에서 다른 사용자에게 속한 장치의 MAC 주소를 저장하려고합니다. 각 MAC 주소는 고유해야하므로 고유성 유효성 검사를 포함했습니다. Rails Console ( ActiveRecord::RecordNotUnique)을 사용하려고 할 때 중복 레코드가 거부 되었기 때문에 유효성 검사 자체가 작동하는 것 같습니다 . 그러나 고유 한 레코드 만 저장할 수 있는지 확인하는 테스트가 실패했습니다.

그래서 내 질문은 다음과 같습니다.

  1. 테스트가 실패하는 이유는 무엇이며 어떻게 해결할 수 있습니까?
  2. 고유성 검증만으로는 고유성을 보장하는 신뢰할 수있는 방법이 아니라고 다른 곳에서 읽었습니다. before_save콜백 과 같은 다른 방법을 사용해야합니까 ?

테스트를 위해 표시되는 오류 메시지입니다.

Expected #<MacAddress id: nil, user_id: nil, address: "MACADD123", created_at: nil, updated_at: nil> to be nil or false

내 모델 파일에서 설정 :

# app/models/mac_address.rb

class MacAddress < ApplicationRecord
  validates :address, uniqueness: true
  belongs_to :user
end
# app/models/user.rb

class User < ApplicationRecord
  has_many :mac_addresses, dependent: :destroy
end

고유성을 확인하기위한 테스트 :

class MacAddressTest < ActiveSupport::TestCase
test 'mac address must be unique' do
    new_mac = 'MACADD123'
    assert MacAddress.create(user: User.first, address: new_mac)
    assert MacAddress.all.pluck(:address).include?(new_mac)

    # The 'assert_not' below is failing.
    assert_not MacAddress.create(user: User.second, address: new_mac)
  end
end

미리 도움을 주셔서 감사합니다.

태드 만

대한 문서에 따라create :

id해당 레코드 가 없습니다 . 그것은 지속되지 않았습니다. .errors.full_messages고유성 유효성 검사 실패를 보려면 로 오류를 확인하십시오 .

결과 개체는 개체가 데이터베이스에 성공적으로 저장되었는지 여부에 관계없이 반환됩니다.

다음과 같이 저장되었다고 주장해야합니다.

mac_address = MacAddress.create(...)
assert !mac_address.new_record?

그것이 저장되었는지 여부를 알려줍니다. 또는 당신이 사용할 수있는 create!인상되는 ActiveRecord::RecordInvalid실패한 경우.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

메서드 유효성 검사가 테스트에서 작동하지 않는 이유는 무엇입니까?

분류에서Dev

이진 검색이 내 테스트에서 작동하지 않는 이유는 무엇입니까?

분류에서Dev

내 XSD가 일부 요소의 유효성을 검사하지 않는 이유는 무엇입니까?

분류에서Dev

이 자바 스크립트 유효성 검사가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

내 유효성 검사가 작동하지 않는 이유는 무엇입니까? asp.net mvc

분류에서Dev

내 JavaScript 유효성 검사기가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

내 웹 사이트에서 jquery 뉴스 티커가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

메서드 수준 유효성 검사가 Spring에서 작동하지 않는 이유는 무엇입니까?

분류에서Dev

eventListener에 대한 입력 유효성 검사가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

로컬 시스템 계정에서 서비스로 실행할 때 내 SMTP 서버 도메인 이름 및 포트 유효성 검사가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

이 JavaScript가 내 웹 사이트에서 작동하지 않는 이유는 무엇입니까?

분류에서Dev

파이썬에서 포스트 요청 보내기가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

내 스크립트에서 document.getElementById가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

내 팝업 스크립트가 IE9에서 작동하지 않는 이유는 무엇입니까?

분류에서Dev

내 스크립트에서 SET LINESIZE가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

내 스크립트가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

내 앱 테스트가 Django 테스트에서 인식되지 않는 이유는 무엇입니까?

분류에서Dev

Ajax 내부의 두 번째 디버거가 Chrome에서 테스트하는 동안 작동하지 않는 이유는 무엇입니까?

분류에서Dev

이 자바 스크립트가 레일에서 작동하지 않는 이유는 무엇입니까?

분류에서Dev

부트 스트랩 모달 내에서 jQuery 확인란 유효성 검사가 작동하지 않습니다.

분류에서Dev

Elixir Ecto 유효성 검사 테스트가 작동하지 않는 이유에 대해 혼란 스러움

분류에서Dev

내 PHP 로그인 스크립트가 Chrome에서는 작동하지만 FireFox 또는 Edge에서는 작동하지 않는 이유는 무엇입니까?

분류에서Dev

이 JSON이이 스키마에 대해 유효성을 검사하지 않는 이유는 무엇입니까?

분류에서Dev

내 셀레늄이 파이썬 스크립트에서 작동하지 않는 이유는 무엇입니까?

분류에서Dev

내 유효성 검사가 텍스트 영역에서 작동하지 않습니다.

분류에서Dev

내 유효성 검사가 텍스트 영역에서 작동하지 않습니다.

분류에서Dev

내 공장과 테스트가 예상대로 작동하지 않는 이유는 무엇입니까?

분류에서Dev

내 테스트 벤치가 작동하지 않는 이유는 무엇입니까?

분류에서Dev

내 onload가 Wordpress에서 작동하지 않는 이유는 무엇입니까?

Related 관련 기사

  1. 1

    메서드 유효성 검사가 테스트에서 작동하지 않는 이유는 무엇입니까?

  2. 2

    이진 검색이 내 테스트에서 작동하지 않는 이유는 무엇입니까?

  3. 3

    내 XSD가 일부 요소의 유효성을 검사하지 않는 이유는 무엇입니까?

  4. 4

    이 자바 스크립트 유효성 검사가 작동하지 않는 이유는 무엇입니까?

  5. 5

    내 유효성 검사가 작동하지 않는 이유는 무엇입니까? asp.net mvc

  6. 6

    내 JavaScript 유효성 검사기가 작동하지 않는 이유는 무엇입니까?

  7. 7

    내 웹 사이트에서 jquery 뉴스 티커가 작동하지 않는 이유는 무엇입니까?

  8. 8

    메서드 수준 유효성 검사가 Spring에서 작동하지 않는 이유는 무엇입니까?

  9. 9

    eventListener에 대한 입력 유효성 검사가 작동하지 않는 이유는 무엇입니까?

  10. 10

    로컬 시스템 계정에서 서비스로 실행할 때 내 SMTP 서버 도메인 이름 및 포트 유효성 검사가 작동하지 않는 이유는 무엇입니까?

  11. 11

    이 JavaScript가 내 웹 사이트에서 작동하지 않는 이유는 무엇입니까?

  12. 12

    파이썬에서 포스트 요청 보내기가 작동하지 않는 이유는 무엇입니까?

  13. 13

    내 스크립트에서 document.getElementById가 작동하지 않는 이유는 무엇입니까?

  14. 14

    내 팝업 스크립트가 IE9에서 작동하지 않는 이유는 무엇입니까?

  15. 15

    내 스크립트에서 SET LINESIZE가 작동하지 않는 이유는 무엇입니까?

  16. 16

    내 스크립트가 작동하지 않는 이유는 무엇입니까?

  17. 17

    내 앱 테스트가 Django 테스트에서 인식되지 않는 이유는 무엇입니까?

  18. 18

    Ajax 내부의 두 번째 디버거가 Chrome에서 테스트하는 동안 작동하지 않는 이유는 무엇입니까?

  19. 19

    이 자바 스크립트가 레일에서 작동하지 않는 이유는 무엇입니까?

  20. 20

    부트 스트랩 모달 내에서 jQuery 확인란 유효성 검사가 작동하지 않습니다.

  21. 21

    Elixir Ecto 유효성 검사 테스트가 작동하지 않는 이유에 대해 혼란 스러움

  22. 22

    내 PHP 로그인 스크립트가 Chrome에서는 작동하지만 FireFox 또는 Edge에서는 작동하지 않는 이유는 무엇입니까?

  23. 23

    이 JSON이이 스키마에 대해 유효성을 검사하지 않는 이유는 무엇입니까?

  24. 24

    내 셀레늄이 파이썬 스크립트에서 작동하지 않는 이유는 무엇입니까?

  25. 25

    내 유효성 검사가 텍스트 영역에서 작동하지 않습니다.

  26. 26

    내 유효성 검사가 텍스트 영역에서 작동하지 않습니다.

  27. 27

    내 공장과 테스트가 예상대로 작동하지 않는 이유는 무엇입니까?

  28. 28

    내 테스트 벤치가 작동하지 않는 이유는 무엇입니까?

  29. 29

    내 onload가 Wordpress에서 작동하지 않는 이유는 무엇입니까?

뜨겁다태그

보관