Утверждение о самых последних аргументах вызова для шпиона Синона - PullRequest
0 голосов
/ 04 июня 2019

В моем коде реализации у меня есть функция обновления, которая может вызываться несколько раз.Обновления завершены, то есть, если вы позвоните updateFn(A), то updateFn(B), «A» не будет иметь значения, и будет действовать только «B».Я мог бы написать утверждение так:

assert(updateFn.calledWith(B));

Что на первый взгляд кажется хорошим тестом.Однако это утверждение все равно прошло бы, если бы фактические вызовы были updateFn(A)updateFn(B)updateFn(A), что было бы некорректным поведением для рассматриваемой системы.

То, что я хотел бы написать, является утверждениемтолько на самых последних вызванных аргументах.Есть ли хороший способ сделать это с Синоном?

1 Ответ

0 голосов
/ 04 июня 2019

С утверждениями Чая вы можете сделать:

expect(updateFn.lastCall.args).to.eql([B]);

Где [B] - массив ожидаемых аргументов.

...