【RSpec】변수를 사용하고 싶을 때는 let

소개



RSpec의 테스트에서 변수를 쓰면 rubocop에 화가났다. 그래서 그 대처에 대해.

화내는 법



Defining constants inside of specs can cause spurious behavior. It is almost always preferable to use let statements, anonymous class/module definitions, or ? stub_const (convention:Airbnb/SpecConstantAssignment)

let을 사용할 수 있다고 말하는 것은 알 수 있다. .

spec 에서 상수를 정의하면 스퓨리어스 동작을 유발할 수 있습니다. 대부분의 경우 let 문, 익명 클래스/모듈 정의 또는 stub_const를 사용하는 것이 바람직합니다.

그래, 스퓨리어스.

google 번역, spurious behavior 에서 거짓 행동. 이었다.
요점은 의도하지 않는 변수화가 되어, 라고 하는 일일까.

let 사용



원래는 RSpec 안에서 이렇게 썼다.
  API_KEY = Rails.application.credentials.api[:API_KEY]

이것은 결국
  let(:api_key) { Rails.application.credentials.api[:API_KEY] }

이렇게 바꾸었습니다.
호출할 때는
 headers = {
    'Authorization': "Bearer #{api_key}",
 }

이렇게 보통 변수로 호출할 수 있습니다.

let 사용의 이점


  • 테스트에 사용하는 변수를 let로 코드 위쪽으로 기술 해 버리는 것으로, it 안의 검증 부분이 보기 쉽고, 알기 쉬워진다
  • 만약, before안에 보통으로 변수로서 정의하면(자), 테스트 케이스안에서 사용되지 않는 변수가 있었을 경우도, 생성되어 버리지만, let이면, 지연 평가에 필요한 때만 불린다 .

  • 등 등,
    자세한 것은 모두 이쪽으로부터 가르쳐 주셨습니다.
    RSpec let을 사용하는 것은 언제입니까? (번역)

    끝에.



    끝까지 읽어 주셔서 감사합니다
    전직을 위해, 미경험의 상태로부터 Rails를 학습하고 있습니다. 올바른 지식을 꾸준히 착용하고 실력 있는 엔지니어가 되고 싶습니다. 계속해서 투고해 나가는 가운데, 그 때문에의 인풋도 필연적으로 늘어나, 성장에 연결될까라고 생각하고 있습니다.
    지금 현재, 초보자라고 해서 변명은 할 수 없습니다만, 투고의 내용에 잘못되어 있는 곳이나, 덧붙여야 할 곳이 많이 있을까 생각하므로, 지적 받을 수 있으면 다행입니다. 이 기사를 읽어 주셔서 감사합니다.

    좋은 웹페이지 즐겨찾기