Motsu (持つ) - Unit Testing for Stylus
This crate enables unit-testing for Stylus contracts. It abstracts away the
machinery necessary for writing tests behind a #[motsu::test] procedural
macro.
motsu means "to hold" in
Japanese -- we hold a stylus in our hand.
Usage
Annotate tests with #[motsu::test] instead of #[test] to get access to VM
affordances.
Note that we require contracts to implement stylus_sdk::prelude::StorageType.
This trait is typically implemented by default with stylus_proc::sol_storage macro.
Annotating a test function that accepts no parameters will make #[motsu::test]
behave the same as #[test].
Note that currently, test suites using motsu::test will run serially because
of global access to storage.
Notice
We maintain this crate on a best-effort basis. We use it extensively on our own tests, so we will add here any symbols we may need. However, since we expect this to be a temporary solution, don't expect us to address all requests.
That being said, please do open an issue to start a discussion, keeping in mind our code of conduct and contribution guidelines.
Security
Refer to our Security Policy for more details.