Skip to main content

Resetting and Capturing

Resetting mock calls

You can reset just the mock's call counter:

// Creating mock
let mockedFoo: Foo = mock(Foo);

// Getting instance
let foo: Foo = instance(mockedFoo);

// Some calls
foo.getBar(1);
foo.getBar(1);
verify(mockedFoo.getBar(1)).twice(); // getBar with arg "1" has been called twice

// Reset mock
resetCalls(mockedFoo);

// Call count verification
verify(mockedFoo.getBar(1)).never(); // has never been called after reset

You can also reset calls of multiple mocks at once: resetCalls(firstMock, secondMock, thirdMock)

Resetting mock

Or reset the mock's call counter along with all its stubs:

// Creating mock
let mockedFoo: Foo = mock(Foo);
when(mockedFoo.getBar(1)).thenReturn("one");

// Getting instance
let foo: Foo = instance(mockedFoo);

// Some calls
console.log(foo.getBar(1)); // "one" - as defined in stub
console.log(foo.getBar(1)); // "one" - as defined in stub
verify(mockedFoo.getBar(1)).twice(); // getBar with arg "1" has been called twice

// Reset mock
reset(mockedFoo);

// Call count verification
verify(mockedFoo.getBar(1)).never(); // has never been called after reset
console.log(foo.getBar(1)); // null - previously added stub has been removed

You can also reset multiple mocks at once: reset(firstMock, secondMock, thirdMock)

Capturing method arguments

let mockedFoo: Foo = mock(Foo);
let foo: Foo = instance(mockedFoo);

// Call method
foo.sumTwoNumbers(1, 2);

// Check first arg captor values
const [firstArg, secondArg] = capture(mockedFoo.sumTwoNumbers).last();
console.log(firstArg); // prints 1
console.log(secondArg); // prints 2

You can also get other calls using first(), second(), byCallIndex(3) and more.