The opposite of assert_select?
Take a look at the docs here:
http://apidock.com/rails/ActionController/Assertions/SelectorAssertions/assert_select
From the docs:
assert_select is an assertion that selects elements and makes one or more equality tests.
and from the equality tests sections:
The equality test may be one of the following:
true - Assertion is true if at least one element selected.
false - Assertion is true if no element selected.
String/Regexp - Assertion is true if the text value of at least one element matches the string or regular expression.
Integer - Assertion is true if exactly that number of elements are selected.
Range - Assertion is true if the number of selected elements fit the range.
If no equality test specified, the assertion is true if at least one element selected.
And a simple example:
# Page contains no forms
assert_select "form", false, "This page must contain no forms"
Don't forget you can always pass in the count, and set that to zero.
assert_select "a", {count: 0, text: "New"}, "This page must contain no anchors that say New"
I had this problem to ensure there WASN'T a 'Delete' button, out of many buttons. The accepted answer would not work in this situation because there are already several buttons.
assert_select '.button' do |btn|
btn.each do |b|
assert_no_match 'Delete', b.to_s
end
end
However, I really like GantMan's answer better!