2013-07-12 21 views
8

Sto cercando di unit test Jasmine per un controller AngularJS in esecuzione con il test runner ReSharper in modo da poter eseguire il mio test client e lato server in un unico luogo all'interno di VS 2012.AngularJS unit testing con ReSharper

I Sto incontrando un problema in cui il runner di prova di ReSharper fallisce con un messaggio di "Inconcludente: il test non è stato eseguito". Lo stesso test funziona bene utilizzando il runner di test fornito con il progetto AngularJS Seed.

Ecco la mia semplice test per la risoluzione dei problemi:

/// <reference path="~/Scripts/angular/angular.js"/> 
/// <reference path="~/tests/test/lib/angular/angular-mocks.js"/> 
/// <reference path="~/Scripts/app/controllers.js"/> 

'use strict'; 

describe('controllers', function(){ 
    beforeEach(module('myApp.controllers')); 

    it('should ....', inject(function() { 
     expect(1).toEqual(1); 
    })); 
}); 

ho il sospetto che abbia qualcosa a che fare con i miei riferimenti, perché se tolgo la chiamata a inject, il mio test funziona bene. Tuttavia, inject è definito in angular-mocks.js (che sto facendo riferimento) quindi non sono sicuro di quale sia il problema.

Qualche suggerimento?

risposta

5

La tua impressione su ReSharper che inciampa in linea inject è corretta, sembra invece aspettare function quando analizza il file per ottenere l'elenco dei test. Ho lavorato spostando inject s in beforeEach o nel corpo di it e questo ha reso nuovamente felice ReSharper. A proposito, ho anche aggiunto il riferimento a jasmine.js nella parte superiore (prima di altri riferimenti) per sbarazzarsi degli avvertimenti di ReSharper sui globi di gelsomino indefiniti.

+3

potresti condividere qualche codice per favore? – Blowsie

+1

Quale versione di Jasmine stai usando lì? – Ofiris

0

jasmine.js di file ReSharper set dopo tutti i riferimenti. angular-mock.js non troverà il gelsomino e salterà la creazione delle funzioni window.module e window.injec

Ho creato jasmine2.js e lo ho impostato come primo riferimento. Ho svuotato jasmine.js e l'ho impostato come secondo riferimento.

Dopo tutto il mio test ha funzionato