From d56332750043fb3f9ed59357c81736fa3252c71f Mon Sep 17 00:00:00 2001 From: Dang Date: Mon, 12 Mar 2018 14:02:46 -0700 Subject: [PATCH 1/2] Updated README.md to include object compare --- README.md | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5b8f528..0380ad2 100644 --- a/README.md +++ b/README.md @@ -105,6 +105,7 @@ foo.getBar(1); foo.getBar(2); foo.getBar(2); foo.getBar(3); +foo.getBar({ foo: "bar" }); // Call count verification verify(mockedFoo.getBar(1)).once(); // was called with arg === 1 only once @@ -114,6 +115,10 @@ verify(mockedFoo.getBar(anyNumber()).times(4); // was called with any number verify(mockedFoo.getBar(2)).atLeast(2); // was called with arg === 2 min two times verify(mockedFoo.getBar(1)).atMost(1); // was called with arg === 1 max one time verify(mockedFoo.getBar(4)).never(); // was never called with arg === 4 + +// Was called with object only once +// Use deepEqual to verify objects +verify(mockedFoo.getBar(deepEqual({ foo: "bar" }))).called(); ``` ### Call order verification @@ -361,4 +366,4 @@ console.log(capture(spiedFoo.bar).last()); // [42] * Andrey Ermakov (https://github.com/dreef3) * Markus Ende (https://github.com/Markus-Ende) * Thomas Hilzendegen (https://github.com/thomashilzendegen) -* Johan Blumenberg (https://github.com/johanblumenberg) \ No newline at end of file +* Johan Blumenberg (https://github.com/johanblumenberg) From 996b81f92180806a16f8c1a680249e6b1968b154 Mon Sep 17 00:00:00 2001 From: Dang Date: Tue, 13 Mar 2018 10:25:53 -0700 Subject: [PATCH 2/2] Created a separate section for matchers --- README.md | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 0380ad2..ac2ebb7 100644 --- a/README.md +++ b/README.md @@ -105,7 +105,6 @@ foo.getBar(1); foo.getBar(2); foo.getBar(2); foo.getBar(3); -foo.getBar({ foo: "bar" }); // Call count verification verify(mockedFoo.getBar(1)).once(); // was called with arg === 1 only once @@ -115,10 +114,6 @@ verify(mockedFoo.getBar(anyNumber()).times(4); // was called with any number verify(mockedFoo.getBar(2)).atLeast(2); // was called with arg === 2 min two times verify(mockedFoo.getBar(1)).atMost(1); // was called with arg === 1 max one time verify(mockedFoo.getBar(4)).never(); // was never called with arg === 4 - -// Was called with object only once -// Use deepEqual to verify objects -verify(mockedFoo.getBar(deepEqual({ foo: "bar" }))).called(); ``` ### Call order verification @@ -173,6 +168,25 @@ when(mockedFoo.sumTwoNumbers(anyNumber(), anyNumber())).thenCall((arg1:number, a console.log(foo.sumTwoNumbers(5, 10)); ``` +### Using matchers to verify + +DeepEqualMatcher to compare objects + +``` typescript +// Creating mock +let mockedFoo:Foo = mock(Foo); + +// Getting instance +let foo:Foo = instance(mockedFoo); + +// Some calls +foo.getBar({ foo: "bar" }); + +// Use deepEqual to verify objects +verify(mockedFoo.getBar(deepEqual({ foo: "bar" }))).called(); // Was called with object only once +``` + + ### Resolving / rejecting promises You can also stub method to resolve / reject promise