Ruby 테스트의 진리 단언

나는 일찍이 이렇게 나의 단언을 썼다.
assert user.active?
refute user.inactive?
그리고 나는 한 팀에 가입했다. 그곳에서 나는 격려를 받아 다음과 같이 썼다.
assert_equal true, user.active?
assert_equal false, user.inactive?
뭐?보기에 그다지 좋지 않다.그 느낌은 그다지 좋지 않다.그렇게 우아하지 않아!
하지만 문제는 당신의 단원 테스트가 우아함을 위한 것이 아니라는 것이다.그것들은 정확성을 확보하는 데 관한 것이다.진실성이 아니라 진실성을 시험할 때, 잠재적인 오류의 문을 열었다.
4
  • 당신은 비교등식이 아니라 부치를 실행할 수 있습니다.
  • def active?
      # Should be status == :active
      status = :active
    end
    
    4
  • 수조의 길이가 아니라 존재를 검사할 수 있습니다.
  • def has_users?
      # Should be user_list.any?
      user_list
    end
    
    def user_list
      []
    end
    
    시간의 추이에 따라 나는 이미 습관이 되었다.이런 스타일은 여전히 사람을 화나게 하지만, 술어 방법이 잘못된 값으로 인한 오류를 되돌려 주는 것만큼 심각하지는 않다.

    좋은 웹페이지 즐겨찾기