@defi-wonderland/lopt
v1.0.0
Published
Mocking framework for Solidity contracts
Downloads
19
Readme
lopt
lopt
is a utility package that can generate mock Solidity contracts in the form of fakes
and mocks
.
lopt
is based in @eth-optimism/smock, sinon and sinon-chai.
Some benefits of using lopt
:
- Test syntax is easy to understand, just like
sinon-chai
- Supports both chai
expect
andshould
syntax - Fully typed objects, that will extend your contract functions when using
typechain
(highly recommended) - Mock and assert contract calls, without the need of even deploying it by using
fakes
- If you need your contract logic, just wrap it in a
mock
and start asserting calls or changing behaviour - Fully tested library
Documentation
Documentation is available here.
Installation
You can easily install lopt
via npm:
npm install --save-dev @defi-wonderland/lopt
Or via yarn:
yarn add --dev @defi-wonderland/lopt
How to use
...
import { FakeContract, lopt } from '@defi-wonderland/lopt';
chai.should(); // if you like should syntax
chai.use(lopt.matchers);
describe('MyContract', () => {
let myContractFake: FakeContract<MyContract>;
beforeEach(async () => {
...
myContractFake = await lopt.fake<MyContract>('MyContract');
});
it('some test', () => {
...
myContractFake.bark.atCall(0).should.be.calledWith('Hello World');
});
});
Why the name lopt
?
Loki's alternative name is Lopt, and Loki was obviously taken.
Loki is the God of Mischief, a trickster, and the purpose of mocking libraries is basically to trick the tests.