- The structure of a JavaScript-based test is very similar to a Mocha-based test. The difference lies in the fact that Truffle has an extra contract() function. This method works like describe() in Mocha, except it creates a new instance of the contract:
contract('TokenContract', function() { // Write tests});
Truffle uses the clean room feature while running tests. This feature redeploys the contract before executing the contract() method in tests. This ensures that you have a fresh set of contracts to test against. You can still use describe() to run tests without the clean room feature.
- The contract() function also provides the list of accounts in the Ethereum client, which you can use to write tests:
contract('TokenContract', ...