Ho un test di integrazione Rails 3 che verifica i miei percorsi. Contiene test come:Come posso affermare che nessuna rotta corrisponde a un test di integrazione di Rails?
assert_routing(
"/#{@category.url.path}/#{@foo.url.path}",
{ :controller => 'foo', :action => 'show', :category => @category.to_param, :foo => @foo.to_param }
)
Vorrei anche testare un caso in cui nessun percorso deve corrispondere. Ovviamente, la generazione dei test non ha significato in questo caso, quindi ho solo bisogno dell'inverso di assert_recognizes. Mi piacerebbe essere in grado di fare qualcosa del genere:
assert_not_recognized('/adfhkljkdhasjklhjkldfahsjkhdf')
Tutte le idee, a corto di assert_recognizes confezionamento in un blocco assert_raises (che in realtà non è così terribile, ora che ci penso su di esso)?
Non credo che questa è la risposta giusta, almeno per quanto di Rails 4. Le "assert_recognizes ({} ..." avrà esito negativo se uno 1) il percorso specificato non è riconosciuto a tutti, o 2) se è riconosciuto ma come qualcosa diverso da {} (che dovrebbe sempre essere il caso, perché un percorso riconosciuto conterrà: azione e: tasti del controller). –
Non riesco davvero a ricordare quale versione di Rails stavo usando quando ho avuto questo problema. È stato più di due anni fa. :) –
Posso confermare che questo ha funzionato in Rails 3 (3.2.16), ma non riesce in Rails 4 (4.0.2). Aggiungerò un'altra variante come risposta separata. – user569825