2017-02-09 23 views
0

Я потерялся с этим, и я прошел через документацию, и я не могу обернуть вокруг себя голову.Как я могу утверждать ошибку с Чаем?

Я пытаюсь написать тест, который проверяет, что метод выдает ошибку, как это ...

 it("requires an soCode parameter",() => { 
      let readyStub = Sinon.stub(objUt, '_executeWhenReady'); 
      expect(objUt.mapStopsAroundHub(undefined, testPostCode)).to.throw("The 'soCode' parameter is required"); 
      readyStub.restore(); 
     }); 

Это терпит неудачу, потому что, кажется, хотят функции не выполнение функции - Я изменил код как следует ...

 it("requires an soCode parameter",() => { 
      let readyStub = Sinon.stub(objUt, '_executeWhenReady'); 
      expect(objUt.mapStopsAroundHub).to.throw("The 'soCode' parameter is required"); 
      readyStub.restore(); 
     }); 

Это прекрасно работает, чтобы проверить первый параметр (как я теперь не могу представить какой-либо), но я не повезло с номером два параметра ...

 it("requires an param2 parameter",() => { 
      let readyStub = Sinon.stub(objUt, '_executeWhenReady'); 
      expect(objUt.mapStopsAroundHub).to.throw("The 'param2' parameter is required", "VALUE", undefined); 
      readyStub.restore(); 
     }); 

(Я попытался добавить параметры к вызову throw, но это не сработало - это не в документах, которые я мог видеть, так что это не удивительно).

Я тогда подумал попробовать обертывание вызов функции ...

 it("requires an param2 parameter",() => { 
      let readyStub = Sinon.stub(objUt, '_executeWhenReady'); 
      expect(() => objUt.mapStopsAroundHub("VALUE", undefined)).to.throw("The 'param2' parameter is required"); 
      readyStub.restore(); 
     }); 

, но это не удалось, потому что функция я обернул ее не бросает ошибку.

Несомненно, что-то подобное должно быть очень простым. Что я делаю не так?

ответ

0

ОК - Я, очевидно, просто устал! Подход с функцией обхода был правильным путем, но я забыл фигурные скобки.

it("requires an param2 parameter",() => { let readyStub = Sinon.stub(objUt, '_executeWhenReady'); expect(() => { objUt.mapStopsAroundHub("VALUE", undefined);}).to.throw("The 'param2' parameter is required"); readyStub.restore(); }); 

 Смежные вопросы

  • Нет связанных вопросов^_^