Estoy escribiendo una aplicación en la que es conveniente comprobar si una vista tiene no tiene alguna funcionalidad, en particular porque esa funcionalidad debe presentarse solo a los usuarios en cierto grupo de seguridad. Estoy buscando lo contrario de assert_selects para ver que un menú es no prestados.Lo contrario de assert_select?
Respuesta
Tome un vistazo a la documentación aquí:
http://apidock.com/rails/ActionController/Assertions/SelectorAssertions/assert_select
A partir de los documentos:
assert_select es un assertion that selects elements and makes one or more equality tests.
y de las pruebas de igualdad s reflexiones:
La prueba de la igualdad puede ser uno de los siguientes:
cierto - afirmación es cierta si al menos un elemento seleccionado.
falso - La aserción es verdadera si no se ha seleccionado ningún elemento.
Cadena/Regexp - La aserción es verdadera si el valor de texto de al menos un elemento coincide con la cadena o la expresión regular.
Entero - La aserción es verdadera si exactamente ese número de elementos es seleccionado.
Rango - La aserción es verdadera si el número de elementos seleccionados se ajusta al rango .
Si no se especifica ninguna prueba de igualdad, la afirmación es verdadera si se seleccionó al menos un elemento .
Y un ejemplo sencillo:
# Page contains no forms
assert_select "form", false, "This page must contain no forms"
Se puede definir fácilmente su propio:
module ActionDispatch::Assertions::SelectorAssertions
def assert_no_select(*a,&b) # try to think of a better name!
begin
assert_select(*a,&b)
rescue AssertionFailedError
return
end
raise "fail" # there should be a better built-in alternative
end
end
No olvide que puede pasar siempre en el recuento, y establece que a cero.
assert_select "a", {count: 0, text: "New"}, "This page must contain no anchors that say New"
Esto no funciona para mí: no se produce ninguna excepción incluso cuando se encuentra el elemento. –
Actualización: Funciona bien para cualquier elemento que no sea 'cuerpo'. –
¡Es bueno saberlo! Gracias @MatijsvanZuijlen – GantMan
Tuve este problema para asegurar que NO HABRÍA un botón 'Eliminar', de entre muchos botones. La respuesta aceptada no funcionaría en esta situación porque ya hay varios botones.
assert_select '.button' do |btn|
btn.each do |b|
assert_no_match 'Delete', b.to_s
end
end
Sin embargo, ¡me gusta mucho la respuesta de GantMan!
- 1. Lo contrario de instanceof
- 2. Python: lo contrario de `datetime.date.isocalendar()`
- 3. Generar esquema XML de la clase Java (o lo contrario)
- 4. Crear si una entrada no existe, de lo contrario ¿actualizar?
- 5. Cómo hacer lo contrario al atributo de preferencia android: ¿dependencia?
- 6. Rails 3 RSpec y assert_select
- 7. Registrar usuario en Couchapp/CouchDB través jquery.couch.js o lo contrario
- 8. Android: Establecer el parámetro de Peso programáticamente hace lo contrario de lo que quiero
- 9. ¿Hay código inalcanzable en este fragmento? No lo creo, pero Resharper me dice lo contrario
- 10. Si el campo es nulo, tire de ciertos campos; de lo contrario, tirar de otros campos
- 11. ¿Por qué el atributo LinearLayout "layout_weight" parece hacer lo contrario de lo que creo que debería hacer?
- 12. Reorganizar trama de datos a una tabla, lo contrario de "fundir"
- 13. geolocalización de una dirección IP mientras usa GAE sdk o de lo contrario
- 14. ¿Cómo corregir el conjunto de esquinas redondeadas en Android para diseño Relativo o de lo contrario?
- 15. Consulta de agregación SQL para SUM, pero solo permite sumas positivas (de lo contrario 0)
- 16. ¿Usar unique_ptr para propiedad y puntero sin formato de lo contrario?
- 17. CSS: "float: bottom" si hay espacio vertical disponible. "float: left" de lo contrario
- 18. Estrategias para rastrear fugas de memoria cuando has hecho todo lo contrario
- 19. NSURLCache se bloquea con objetos liberados automáticamente, pero de lo contrario
- 20. Akka Actor - espera algún tiempo para esperar un mensaje, de lo contrario envía un mensaje
- 21. Script para ejecutar contra stdin si no arg; de lo contrario, ingrese el archivo = ARGV [0]
- 22. Mi base de datos PostGIS se ve bien, pero GeoDjango piensa lo contrario ... ¿por qué?
- 23. ¿Hay algún método en Ruby que haga lo contrario de encontrar?
- 24. Ordene por Columna1 si Columna1 no es nulo, de lo contrario ordene por Columna2
- 25. Cómo devolver 0 si la tabla está vacía, 1 de lo contrario
- 26. Bash: cree un archivo si no existe, de lo contrario verifique si es grabable
- 27. ¿Cómo activar si, de lo contrario, si la lógica en un operador ternario?
- 28. MySQL - Si existe, obtenga la clave principal. De lo contrario, agregue la entrada
- 29. ¿Cómo hago lo CONTRARIO de [RequireHttps (Redirect = true)] en ASP.NET MVC
- 30. AutoMapper aplana los Modelos de dominio pero ¿hace lo contrario? Si no, ¿qué hace?
Esto no va a funcionar ya que'AssertionFailedError' se genera antes de evaluar la negación. – gertas
¡Buen punto! Editado –