2009-10-27 2 views
1

에게 다음 작품을 사용하여 결석는 잘 WebRat

Then /^I should not see a button called "([^\"]*)"$/ do |name| 
    [snip...] 
end 

표준 "그리고 나는 볼 수 없습니다해야 "버튼 내에서뿐만 아니라 페이지 내 어디에서나 대상 구문을 선택하므로 만족스럽지 않습니다. 특별히 대상 텍스트가있는 버튼이 없는지 확인해야합니다.

나의 첫번째 본능이 뭔가를 시도했다 :

Then /^I should see a button called "([^\"]*)"$/ do |name| 
    response.should have_selector("li") do |li| 
    li.should have_selector("a") do |a| 
     a.should_not contain(name) 
    end 
    end 
end 

그러나 하나의도가있는 경우에도, 한 대상 텍스트를 포함하지 않는 페이지에있는 모든 버튼을 거기로 전달합니다 물론

또는 대상 텍스트를 포함하는 더 많은 버튼.

의견이 있으십니까?

많은 감사,

스티븐.

답변

1

문제가 해결되었습니다. 그때마다이 "컨트롤"의 클래스를 제어했다 이 단계 정의 쓴 : 물론

Then /^I should not see a control called "([^\"]*)"$/ do |name| 
    response.should have_selector("a.control", :content => name, :count 
=> 0) 
end 

, 이것이 내가 "컨트롤"의 모든 클래스를주고 행복 해요 가정을 ...

s.

+0

기꺼이 해결했습니다! – Rodreegez

2

assert_not_contain (어쩌면 not_contain)을 사용할 수 있지만 rdoc에는없는 것으로 의심됩니다.

a.should assert_not_contain(name) 
+0

예, assert_not_contain (name)은이 방법을 사용하면 원하는 방법입니다. – Rodreegez

+0

효과가있었습니다. 매우 감사. –

+0

사실, 그렇게 빨리 ... 코드를 주석 상자에 붙여 넣을 수 없으므로 WebRat Google 그룹에 계속 참여할 예정입니다. –

0

버튼이 실제로 연결되어 있습니까? (A 값을 제출이) 버튼을, 나는 사용

assert_have_selector "input[type=submit][value=\"#{text}\"]" 

과 :

assert_have_no_selector "input[type=submit][value=\"#{text}\"]" 

HTH를.

+0

네, 맞습니다. 기술적으로 그들은 링크입니다. 인터페이스에 나타나는 방식이기 때문에 버튼이라고 부릅니다. –

+0

당신은 나를 생각하고있어. 모든 테스트에서 "버튼"을 "제어"로 변경했습니다. –