Skip to content
No description, website, or topics provided.
Kotlin Shell
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
gradle
scripts
src
.gitignore
.travis.yml
LICENSE
README.md
build.gradle
gradle.properties
gradlew
gradlew.bat
init.sh
settings.gradle
web3j.asc.enc

README.md

Web3j-unit Build Status

Web3j-unit is a Junit 5 extension to streamline the creation of Ethereum contract tests.

Multiple Ethereum implementations are supported including Geth and Besu. To run tests built using Web3j-unit, docker is required on the host.

Instances of Web3j, TransactionManager and GasProvider are injected into the Junit runner.

You can find a sample here.

Getting Started

  1. Add dependency to gradle. N.B. Only snapshots are available at this time.
   repositories {
       maven { url 'https://oss.sonatype.org/content/repositories/snapshots' }
       maven { url "https://dl.bintray.com/ethereum/maven/" }
   }

   implementation "org.web3j:core:4.5.8"
   testCompile "org.web3j:web3j-unit:4.5.8"
  1. Create a new test with the @EVMTest annotation. An instance of Besu is used by default. To use Geth pass the node type into the annotation: @EVMTest(NodeType.GETH)
@EVMTest
class GreeterTest {

}
  1. Inject instance of Web3j TransactionManager and ContractGasProvider in your test method.
@EVMTest
class GreeterTest {

@Test
    fun greeterDeploys(
        web3j: Web3j,
        transactionManager: TransactionManager,
        gasProvider: ContractGasProvider
    ) {}
}
  1. Deploy your contract in the test.
@EVMTest
class GreeterTest {

    @Test
    fun greeterDeploys(
        web3j: Web3j,
        transactionManager: TransactionManager,
        gasProvider: ContractGasProvider
    ) {
        val greeter = Greeter.deploy(web3j, transactionManager, gasProvider, "Hello EVM").send()
        val greeting = greeter.greet().send()
        assertEquals("Hello EVM", greeting)
    }
}
  1. Run the test!
You can’t perform that action at this time.