Я пытаюсь смоделировать CSV Stringify с AngularJS ... но я просто хочу взять два переданных параметра и использовать их позже в тесте, чтобы проверить правильность некоторых параметров.
it("converts latitude and longitude correctly", function() {
this.CSV._stringifyPromise._setResolveMode("instant");
var csvFeatures, csvOptions;
this.CSV.stringify.and.callFake(function(csvFeaturesInStringify,
csvOptionsInStringify) {
csvFeatures = csvFeaturesInStringify;
csvOptions = csvOptionsInStringify;
});
this.featureExportCSVService.buildCsvFile(this.features, "Test");
expect(this.csvOptions[0].LONG).toEqual(this.features[0].geometry.coordinates[
0].toString());
expect(this.csvOptions[0].LAT).toEqual(this.features[0].geometry.coordinates[
1].toString());
});
Я считаю, что CSV stringify возвращает обещание в не тестовом коде, как он называется ...
CSV.stringify(csvObject.features, csvObject.options)
.then(function(result) { ... }
Я предполагал, что это просто вернет результат в моем фальшивом вызове, но это, похоже, не работает.
this.CSV.stringify.and.callFake(function(csvFeaturesInStringify,
csvOptionsInStringify) {
expect(...);
expect(...);
return "test,blah,blah";
});
Я пытался использовать $q.defer().resolve();
, но $q
не был определен. Делая возврат, он просто говорит undefined is not a constructor
Как мне разрешить эту функцию, чтобы она просто возвращала фиктивную строку или даже просто завершила тест здесь и оценила мои expect()
вызовы?