Конструктор тестирования жасмина, который обещает

Вы не можете изменить шрифт Object Explorer на своем собственном , но вы можете его изменить.

  1. Перейдите к «Инструменты / Параметры / Шрифты и цвета» "
  2. В раскрывающемся меню« Показать настройки для: »выберите« Шрифт среды »
  3. Установите шрифт / шрифт в соответствии с тем, что вы хотите (я использую 12 pt Segoe UI)
  4. Нажмите «OK»
  5. Перезапустите SSMS
1
задан EHorodyski 16 January 2019 в 23:30
поделиться

1 ответ

В идеале вы должны initializeData() вернуть обещание, которое оно создает, чтобы вы могли легко ждать, пока оно разрешится в ваших тестах. Тогда вместо того, чтобы пытаться выяснить, когда обещание разрешается, вы можете просто высмеять initializeData() перед созданием класса.

Учитывая, что метод initializeData() изменен для возврата обещания, вы можете проверить класс SimpleDataStore следующим образом:

describe('SimpleDataStore', function () {

    beforeEach(function () {
        this.initializeData = spyOn(SimpleDataStore.prototype, 'initializeData');
        this.http = jasmine.createSpyObj('HttpClient', ['get']);
        this.storage = jasmine.createSpyObj('Storage', ['get']);
        this.dataStore = new SimpleDataStore(this.http, this.storage);

        // initializeData is called immediately upon construction.
        expect(this.initializeData).toHaveBeenCalled();
    });

    describe('initializeData', function () {

        beforeEach(function () {
            // The data store is initialized, we can now let the calls go to the real implementation.
            this.initializeData.and.callThrough();
        });

        afterEach(function () {
            expect(this.storage.get).toHaveBeenCalledWith('dataKey');
        });

        it('is initialized with "dataKey" storage', function (done) {
            const data = {};
            this.storage.get.and.returnValue(Promise.resolve(data));
            this.dataStore.initializeData()
                .then(() => expect(this.dataStore._data.getValue()).toBe(data))
                .catch(fail)
                .finally(done)
        });

        it('is initialized with empty array when "dataKey" storage rejects', function (done) {
            this.storage.get.and.returnValue(Promise.reject());
            this.dataStore.initializeData()
                .then(() => expect(this.dataStore._data.getValue()).toEqual([]))
                .catch(fail)
                .finally(done)
        });

    });

});
0
ответ дан Jake Holzinger 16 January 2019 в 23:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: