2015-03-30 12 views
6

Próbowałem prostego testu asynchronicznego. Zainstalowany jaśmin-węzeł npm install -g jasmine-node następnie napisał prosty moduł i test.Wykonanie jaśminu nie jest zdefiniowane

Prosty moduł.

// weather.js 
exports.get = function(city, callback) { 
    callback(city); 
}; 

i pakiet testowy.

// weather-spec.js 
var list = require("../modules/weather"); 

describe("Weather Forecast", function(data) { 
    it('should get weather for London,UK', function() { 
     list.get('London,UK', function(data) { 
      expect(data).toEqual('London,UK'); 
      done(); 
     }); 
    }); 
}); 

pojawia się błąd:

Stacktrace: 
    ReferenceError: done is not defined 

Ze względu na prosty przykład nie widzę gdzie jadę źle. Czy ktoś może pomóc?

Odpowiedz

24

done to pierwszy argument przekazany do it:

it('should get weather for London,UK', function(done) { 
    list.get('London,UK', function(data) { 
     expect(data).toEqual('London,UK'); 
     done(); 
    }); 
}); 
+0

Dziękuję. Nie mogę uwierzyć, że to przegapiłem! –

+0

Też tęskniłem za tym. Nic dziwnego... – igraczech

1
describe("Weather Forecast", function(data) { 
    it('should get weather for London,UK', function(done) { 
     list.get('London,UK', function(data) { 
      expect(data).toEqual('London,UK'); 
      done(); 
     }); 
    }); 
}); 

Upewnij się, że przechodzą w done w zwrotnego it „s.