title: How to write unit tests for continuous Combine publisher without using wait(for:timeout:)?
body: <p>Imagine, we have a <code>sut</code> as a publisher which publishes values continuously and never finishes. On change of some input (ex: we change some mocked @Published property which our <code>sut</code> depends on), it emits an event.</p>
  <p>We're collecting these events in <code>results</code> array and then checking if there is an exact expected number of events, not less and not more.</p>
  <p>The problem is - how to check there are no more events after what we expect to be emitted? Without <code>wait</code> method we don't know when it's time to check the <code>results</code> array.</p>
  <p><code>wait</code> will work but it feels for me like a crutch for Combine. Because the good unit tests should be fast (see F.I.R.S.T principles of unit testing). And these <code>wait</code>s looks more like anti-pattern.</p>
  <p>I also couldn't find an Apple's recommendation on this.</p>