Change Log

0.10.1 (2021-12-07)

Minor fix to .formatter.exs. Exported format options were not being honored because of a typo, export is the honored key but exports was being used.

Improvements

Bugfixes

0.10.0 (2021-12-05)

Changes how function patches work by introducing "Stacked Callables."

Stacked Callables are a large new feature that builds on the passthrough evaluation feature introduced in v0.9.0.

Chapter 2 of the Guidebook has a new section that explains this design in detail.

Breaking Changes

Improvements

Features

Deprecations

0.9.0 (2021-12-02)

Changes how function patches work so that the test author can only patch out a subset of function calls.

Breaking Changes

Improvements

0.8.2 (2021-11-12)

Bugfix for handling module attributes in Call Assertions.

Bugfixes

0.8.1 (2021-11-12)

Bugfix for handling modules with aggregate compile attributes. This fixes a codegen bug introduced in 0.8.0.

Bugfixes

0.8.0 (2021-11-11)

Improved call assertion to use full pattern matching. Pattern matching works like ExUnit's assert_receive/3 and assert_received/2. Unpinned variables will be bound when asserting.

Breaking Changes

Improvements

Features

Bugfixes

Removals

0.7.0 (2021-10-21)

Support for call counts in assertions. assert_called/1 and refute_called/1 are unchanged.

Breaking Changes

None

Improvements

Features

Deprecations

0.6.1 (2021-10-17)

Minor release to improve the documentation and reduce the scope of imported symbols from Patch.Mock.Value.

Improvements

Removals

0.6.0 (2021-10-16)

Major internal refactor. This version removes meck as a dependency and implements a Patch specific replacement, Patch.Mock. This allows us to have a new set of functionality that no other mocking library for Elixir / Erlang has today.

Patch Mocks can now be said to obey a single simple rule, public or private, local or remote.

A patched function always returns the mock value to all callers.

Two new bits of functionality make this true.

  1. All calls, local or remote, end up intercepted and the mock value returned.
  2. Private functions can be mocked.

And as a bonus

  1. Private functions can be converted into public functions for direct testing.

Breaking Changes

Improvements

Features

Removals

0.5.0 (2021-09-17)

Better support for mocking erlang modules

Breaking Changes

None

Improvements

Bugfixes

0.4.0 (2021-08-09)

Support for working with Processes

Breaking Changes

None

Improvements

Features

0.3.0 (2021-07-12)

Support for replacing a module wholesale via the fake/2 function

Breaking Changes

None

Improvements

Features

0.2.0 (2021-03-03)

Removed Arity Limitations

Breaking Changes

None

Improvements

Features

0.1.2 (2021-01-28)

Increased Elixir Compatibility

Improvements

0.1.1 (2020-04-27)

Bugfix Release

Improvements

Bugfixes

0.1.0 (2020-04-21)

Initial Release

Breaking Changes

None

Improvements

Features