You could just get the entire mailbox as a list and then. assert mailbox ==
[1, 2, 3]
No extra macros required.

Cheers,
Louis

On Sun, 11 Feb 2018, 15:59 José Valim, <jose.va...@gmail.com> wrote:

> How is that different from asserting each of them was received followed by
> a refute_received _? My concern about such helper is that it may imply an
> ordering which we likely won’t assert. Although one could argue the same
> about multiple assert_received calls.
>
> On Sun, Feb 11, 2018 at 16:04 Tobias Pfeiffer <prag...@gmail.com> wrote:
>
>> Hello everyone,
>>
>> I've happily been using a little helper for quite some time and Devon
>> liked it as well so thought might propose it:
>>
>> I often want to make sure that a bunch of messages were received but
>> exactly these messages and no more.
>>
>> Enter assert_received_exactly - it gets a list of expected messages and
>> it expects that each of them arrives no more than specified. (as always
>> sorry if something like this has been proposed before, haven't seen
>> anything)
>>
>> E.g.
>>
>> assert_received_exactly [:foo, :foo, :bar]
>>
>> passes if we received :foo 2 times and :bar one time. It fails if we
>> receive :foo or :bar more often or less often.
>>
>> Other usage example at [1].
>>
>> In the current implementation [2] receiving :baz won't fail the test as
>> only expected values are checked. This is currently done because there
>> are some messages being received that have nothing to do with the
>> current thing under test (I stub out some interactions with dummy
>> modules that send messages instead of doing work like [3]).
>>
>> I realize it's a very thin wrapper atm but having it part pf ExUnit
>> would probably still help people and make tests better overall.
>>
>> Happy to try & convert it to a macro and PR it if this helper is desired
>> :) (probably also with more custom error messages)
>>
>> Thanks for considering and for great community work and a great language!
>> :)
>> Tobi
>>
>> [1]
>>
>> https://github.com/PragTob/benchee/blob/3b60c17b067a7e7503cb0fb6e40bdc92ffde3fbd/test/benchee/benchmark/runner_test.exs#L854-L867
>> [2]
>>
>> https://github.com/PragTob/benchee/blob/master/test/support/test_helpers.ex#L23-L29
>> [3] https://devonestes.herokuapp.com/my-new-favorite-elixir-testing-trick
>> --
>> http://www.pragtob.info/
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "elixir-lang-core" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to elixir-lang-core+unsubscr...@googlegroups.com.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/elixir-lang-core/e9f08407-830b-0e38-db5d-34d0672f247c%40gmail.com
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
> --
>
>
> *José Valimwww.plataformatec.com.br
> <http://www.plataformatec.com.br/>Founder and Director of R&D*
>
> --
> You received this message because you are subscribed to the Google Groups
> "elixir-lang-core" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to elixir-lang-core+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4JunuWKNwUkuqPD6-fOCLC_WZDLas%2BsmKHE4L978uNzMg%40mail.gmail.com
> <https://groups.google.com/d/msgid/elixir-lang-core/CAGnRm4JunuWKNwUkuqPD6-fOCLC_WZDLas%2BsmKHE4L978uNzMg%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"elixir-lang-core" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to elixir-lang-core+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/elixir-lang-core/CABu8xFDhvvijR%3DETv7TFP7cODfgAFGjGjn5iKGpNfTP_aa%3DV-Q%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to