그래서 같은 XPath를 조건 컨트롤러의 반응을 테스트하는 했어야 매크로/방법이 있어야합니다. 그러나, 나는 하나의 테스트 케이스를 가지고 있는데, 정확히이 하나 존재해야한다. 이는 선택적 블록의 작업입니다. 추가/컨텍스트 관련 어설 션을 수행 할 수 있도록 XPath 일치 항목을 호출자에게 노출합니다.얻기 접근 방법
불행하게도, 실제로 블록 통과 할 때 :
should_have_xpath("//my/xpath/expression") { |match| assert_equal 1, match.size }
을 ... 나는이 오류가 발생합니다 :
NoMethodError: undefined method `assert_equal' for Users::SessionsControllerTest:Class
이 (내가 그것을 이해) 방식 진작 작동하기 때문에입니다 : "should"호출 (블록 포함)에 전달 된 매개 변수는 테스트 클래스의 인스턴스가 아니라 테스트 클래스의 컨텍스트에서 정의됩니다. Test :: Unit :: Assertions.assert *는 모듈 인스턴스 메서드이므로 편리하게 액세스 할 수 없습니다.
그래서, 내 질문은 : Test/Unit :: Assertions에서 assert * 메서드에 액세스하는 것이 편리하지만/관용적 인 방법이 있습니까? 해결책은 Shoulda에서 반드시 수행해야하지만, Shoulda에 반드시 종속 일 필요는 없습니다. 곧은 Ruby 방식이 좋을 것입니다.
내가 작업 솔루션있어
딱! 번들에 감사드립니다. –