This repository demonstrates how to use the matchers library to unit test canisters on the Internet Computer.
The project is split into two canisters, the "canister under test" called ic101 and a canister containing test for it,
called ic101_test.
ic101 exposes a greet function that returns a greeting for all names but "Voldemort" which makes it trap.
ic101_test exposes a test function that should be called to run the unit tests. The run_test.sh script can be used to run these and detect test failures, provided both canisters have been installed on the local replica.
Relevant files to check out:
vessel.dhalladds the dependencies onbaseandmatcherspackage-set.dhallcontains the exact versions needed to make this work at this point in timedfx.jsonconfigures the test canister, as well as thevesselinvocations under the"defaults"key.- The canister under test is the minimal greet canister slightly modified.
- The test canister uses the
matcherslibrary to define its unit tests.
Also make sure to check out the Canister module in the matchers library.
git clone https://github.com/kritzcreek/ic101.git
cd ic101
dfx start --background
dfx canister create --all
dfx build
dfx canister install --all --mode=reinstall
./run_test.sh