title: Difference between MainCoroutineRule and runBlocking
body: <p><code>MainCoroutineRule</code> and <code>runBlocking</code> of Kotlin Coroutines both are designed for testing purposes. And seems like both are offering the same functionality: running code synchronously in a test environment.<br />
  So what's the difference? What's the best use case for each of them?</p>