Smarter Testing with Macros
If you’re familiar with writing tests in most mainstream languages, you know it can take a while to learn the different assertion functions of testing frameworks. For example, let’s see how a few basic assertions for popular test frameworks in Ruby and JavaScript compare to Elixir. You don’t need to be familiar with these languages; just be mindful of the different assertion APIs.
JavaScript:
| expect(value).toBe(true); |
| expect(value).toEqual(12); |
| expect(value).toBeGreaterThan(100); |
Ruby:
| assert value |
| assert_equal value, 12 |
| assert_operator value, :<=, 100 |
Elixir:
| assert value |
| assert value == 12 |
| assert value <= 100 |
Notice how such simple assertions took on arbitrary method and function names in Ruby and JavaScript? ...
Get Metaprogramming Elixir now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.