DEV Community

Cover image for How to test Asynchronous Rust Programs with Tokio [TUTORIAL]
Augustine Madu
Augustine Madu

Posted on

How to test Asynchronous Rust Programs with Tokio [TUTORIAL]

Hey Devs,

You may already know how to write tests for synchronous functions in Rust, but to write tests for asynchronous functions, you will need the aid of an external crate called Tokio.

Tokio is a very popular crate in Rust, which is used to run asynchronous and multi-threaded programs efficiently.

It also comes with a test attribute macro, which you can use on a test function to run it asynchronously.

In this tutorial, you will also learn how to get the state of an asynchronous function (whether it's pending or ready). This will be done by utilizing an external crate called Tokio-Test.

The Tokio-Test crate comes with a set of assertion macros, such as:

  • assert_pending
  • assert_ready
  • assert_ready_eq
  • assert_ready_ok
  • assert_ready_err

These are used to assert the state of an asynchronous function or block.

I will also show you how to work with timeouts and intervals in your test without slowing down your test.

Here's the YouTube video for the tutorial.

I hope you learn something new!

Top comments (0)