Использование Sinon для чтения сообщений консоли в Mocha

1

Я пытаюсь проверить веб-компонент. Этот веб-компонент записывает предупреждающее сообщение на консоль, если установлено недопустимое значение свойства. В настоящее время у меня есть следующее:

import { expect } from 'chai';
import { mount } from 'avoriaz';

import MyComponent from '../src/my-component.vue';

const sinon = require('sinon');

describe('my-component.vue', function() {
  let sandbox = null;

  beforeEach(function() {
    sandbox = sinon.sandbox.create();
    sandbox.stub(console, 'warn');
  });

  afterEach(function() {
    sandbox.restore();
  });

  it('should show warning message in console', function() {
    let wrapper = mount(MyComponent, { propsData: { start:-1 } });  // start has to be positive.
    let result = sandbox.calledWith('WARNING!');
    expect(result).to.equal(true);
  });
});

Когда я запускаю эти тесты, я получаю следующее исключение:

sandbox.calledWith is not a function

Затем я попытался использовать sandbox.fakes.calledWith вместо этого. Затем я получил эту ошибку:

sandbox.fakes.calledWith is not a function

Что я делаю неправильно? Как проверить, отображается ли консольное сообщение на консольной линии? Дело в том, что если я удалю sandbox.stub(console, 'warn'); line, я вижу строку, записанную в фактическое окно консоли. Поэтому я знаю, что он генерируется (как и ожидалось). Я просто не могу понять, как проверить это.

Любая помощь приветствуется.

Теги:
sinon

1 ответ

0
Лучший ответ

Бит, где у вас есть

let result = sandbox.calledWith('WARNING!');

не имеет смысла, и должно быть

let result = console.warn.calledWith('WARNING!');

Ещё вопросы

Сообщество Overcoder
Наверх
Меню