Luc, Please keep in mind that you are dealing with the private API, and it might change even in with a minor RSpec version update.
On Mon, Nov 23, 2020 at 12:29 PM Luc Delmon <[email protected]> wrote: > Well, > > I think it's even better. If I can access @message_received at any time > after defining the spy. I might change the matcher itself to iterate over > the list directly. It match more with my objectives. > > thank you > > On Friday, November 20, 2020 at 8:32:50 PM UTC+1 [email protected] wrote: > >> Luc, >> >> There's no way you can get this information using this syntax, since by >> the moment `"#{??}"` is evaluated, `have_received`'s `matches?` has not yet >> been called. >> expect(obj).to( >> have_received(:a).with(:arg_2).twice, >> "#{??}" >> ) >> >> You may try passing a proc though >> https://relishapp.com/rspec/rspec-expectations/v/3-9/docs/customized-message#customize-failure-message-with-a-proc >> There, you can use `::RSpec::Mocks.space.proxy_for(a)` and poke around >> its `@messages_received`. >> >> So, for: >> ``` >> it { >> a = double >> allow(a).to receive(:foo) >> a.foo(1) >> expect(a).to have_received(:foo).twice, lambda { >> puts >> ::RSpec::Mocks.space.proxy_for(a).instance_variable_get(:@messages_received) >> } >> } >> ``` >> you'll get: >> ``` >> [[:foo, [1], nil]] >> ``` >> > -- > You received this message because you are subscribed to the Google Groups > "rspec" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/rspec/09b204c4-5392-4f74-8903-6e95ad57777bn%40googlegroups.com > <https://groups.google.com/d/msgid/rspec/09b204c4-5392-4f74-8903-6e95ad57777bn%40googlegroups.com?utm_medium=email&utm_source=footer> > . > -- You received this message because you are subscribed to the Google Groups "rspec" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/rspec/CAAk5Ok9ANJCzjWeCmAjTKPZ5j5%3DEaZue6uyt3yxUqbCUuF94Ag%40mail.gmail.com.
