Эта проблема возникает также, когда у вас есть mockito-all на вашем пути к классу, который уже устарел.
Если возможно, просто включите mockito-core.
Конфигурация Maven для смешивания junit , mockito и hamcrest:
<dependencies>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-core</artifactId>
<version>1.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest-library</artifactId>
<version>1.3</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-all</artifactId>
<version>1.9.5</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
Самый простой и простой способ - проверить баланс отправителя и получателя до и после передачи.
Теперь по поводу неудачного перевода, после прочтения договора я заметил, что в случае нехватки средств вы просто возвращаете false, что делает действительную транзакцию. Что вам нужно сделать, это отменить транзакции, используя require
, чтобы сделать проверки. Таким образом, неверная транзакция будет возвращена EVM, которая будет распознана etherscan и покажет, что транзакция не удалась.