diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..ae22718 --- /dev/null +++ b/Readme.md @@ -0,0 +1,53 @@ +asynctest +========= + +Complements the standard [unittest][1] module in Nim to allow testing of +asynchronous code. + +Installation +------------ + +Use the [Nimble][2] package manager to add asynctest to an existing project. +Add the following to its .nimble file: + +```nim +requires "asynctest >= 0.1.0 & < 0.2.0" +``` + +Usage +----- + +Simply replace `test` with `asynctest` when you need to await asynchronous calls +in the test. The same holds for `asyncsetup` and `asyncteardown`, which allow +you to await asynchronous calls during test setup and teardown. + +Example +------- + +```nim + +import unittest +import asynctest +import asyncdispatch # alternatively: import chronos + +proc someAsyncProc {.async.} = + # perform some async operations using await + +suite "test async proc": + + asyncsetup: + # invoke await in the test setup: + await someAsyncProc() + + asyncteardown: + # invoke await in the test teardown: + await someAsyncProc() + + asynctest "some test": + # invoke await in tests: + await someAsyncProc() + +``` + +[1]: https://nim-lang.org/docs/unittest.html +[2]: https://github.com/nim-lang/nimble diff --git a/tests/testAsyncTest.nim b/tests/testAsyncTest.nim index 29a16d5..a7d7caa 100644 --- a/tests/testAsyncTest.nim +++ b/tests/testAsyncTest.nim @@ -2,15 +2,20 @@ import std/unittest import std/asyncdispatch import pkg/asynctest -suite "async tests": +proc someAsyncProc {.async.} = + # perform some async operations using await + discard - proc asyncproc {.async.} = discard +suite "test async proc": - asyncsetup: # allows await in setup - await asyncproc() + asyncsetup: + # invoke await in the test setup: + await someAsyncProc() - asyncteardown: # allows await in teardown - await asyncproc() + asyncteardown: + # invoke await in the test teardown: + await someAsyncProc() - asynctest "allows await in tests": - await asyncproc() + asynctest "async test": + # invoke await in tests: + await someAsyncProc()