как заменить импортированные модули как заглушки

Это не поддерживается. В принципе, вы можете работать с файлом jar, но нет гарантии, что новое содержимое будет правильно загружено. Пусть ваши инструменты сборки управляют файлом jar - и выберите что-то еще для постоянной памяти, управляемой вашей программой. Как файл.

0
задан ippomakunochi 13 July 2018 в 06:29
поделиться

1 ответ

Во-первых, я заметил проблему с классом IdentifyService относительно использования promise.

class IdentifyService {
  identify(filePath) {
    return new Promise((resolve, reject) => { // create a new promise
      imagemagick.identify(['-format', '%w_%h', filePath], function (err, output) {
        if (err) reject(err);

        resolve(output); // no need to specify `return`
      });
    });
  }
}

Для самого теста он должен использовать yields для imagemagick.identify, потому что это функция с callback.

describe('Verify image processing', () => {
    before(() => {
        const fileInfo = [{page: 1, width:100, height: 100, colorspace: 'RGB'}];
        sinon.stub(imagemagick, 'identify').yields(null, fileInfo); // use yields
    });    

    it('returns metadata', async () => {
        const metadata = await IdentifyService.identify('test.exe');
        expect(metadata).to.have.lengthOf(0);
    });
});

Я предполагаю, что ваша среда поддерживает async await.

1
ответ дан deerawan 17 August 2018 в 13:32
поделиться
  • 1
    Это сделал трюк! Использование yields исправляет мою проблему. И спасибо, что указали, что мне не нужно использовать return при запуске решения (). – ippomakunochi 14 July 2018 в 02:00
Другие вопросы по тегам:

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