Sto passando un url come parametro in una richiesta GET di $ resource. Angolare è l'url che codifica questo parametro e che corrisponde alla richiesta nel metodo $ httpBackend.expectGET è schizzinoso.
Vedo che è possibile utilizzare le espressioni regolari per abbinare la richiesta prevista ma non è possibile farlo funzionare. Mi piacerebbe abbinare la posizione della risorsa, ma con qualsiasi valore del parametro stringa di query "uri".
Ctrl
var resource = $resource('../api/lookup');
resource.get({ uri: "http://www.something.com" }, function (data) {
// do something
});
prova
// mock out the $httpBackend response
$httpBackend.expectGET(/\.\.\/api\/lookup\?uri=.*/)).respond(200, { Response: "a response" });
// call my test method here
// ensure the $httpBackend work is done
$rootScope.$apply();
$httpBackend.flush();
// do assertions
Karma uscita
Error: Unexpected request: GET ../api/lookup?uri=http%3A%2F%2Fwww.something.com
Expected GET /../api/lookup?uri=.*/
Qualcuno può capire perché il mio regex non è stato abbinato?
Modifica
Anche dopo il miglioramento della regex come suggerito non ho potuto ottenere questo lavoro utilizzando il '$ var' sintassi iniezione. Ho riscritto i test, iniettando le dipendenze con la funzione inject e assicurando che l'ordine del mio test fosse corretto. Ora funziona come un fascino!
acclamazioni per il fissaggio mia regex . Sfortunatamente Angular continua a non corrispondere alla richiesta. Continuerò a cercare nel caso in cui riesca a risolvere il problema generale, ma se non lo farò tornerò ad accettarlo come risposta. – daddywoodland