How to write a mock method for getting ether balance using Web3j Api. I am trying to mock Web3j and callig...
This method fetches ether using web3j Api.
public static BigInteger OriginalMethod(){
// connect to node
Web3j web3 = Web3j.build(new HttpService()); // defaults to
http://localhost:8545/
// send asynchronous requests to get balance
EthGetBalance ethGetBalance = web3
.ethGetBalance("0xAccountAddress", DefaultBlockParameterName.LATEST)
.sendAsync()
.get();
BigInteger wei = ethGetBalance.getBalance();
}
The below method is the mock method for getting ether.
public static BigInteger MockOriginalMethod(){
web3j=Mockito.mock(Web3j.class);//Mock web3j class
BigInteger bigValue=Mockito.mock(BigInteger.class);
Mockito.when(web3j.ethGetBalance(address, DefaultBlockParameterName.LATEST).sendAsync()
.get().getBalance()).thenReturn(bigValue);
return bigValue.valueOf(11);
}
java unit-testing mockito ethereum
add a comment |
This method fetches ether using web3j Api.
public static BigInteger OriginalMethod(){
// connect to node
Web3j web3 = Web3j.build(new HttpService()); // defaults to
http://localhost:8545/
// send asynchronous requests to get balance
EthGetBalance ethGetBalance = web3
.ethGetBalance("0xAccountAddress", DefaultBlockParameterName.LATEST)
.sendAsync()
.get();
BigInteger wei = ethGetBalance.getBalance();
}
The below method is the mock method for getting ether.
public static BigInteger MockOriginalMethod(){
web3j=Mockito.mock(Web3j.class);//Mock web3j class
BigInteger bigValue=Mockito.mock(BigInteger.class);
Mockito.when(web3j.ethGetBalance(address, DefaultBlockParameterName.LATEST).sendAsync()
.get().getBalance()).thenReturn(bigValue);
return bigValue.valueOf(11);
}
java unit-testing mockito ethereum
What do you want to test with this method? Do you want to testOriginalMethod()
? Mockito needs help for example from PowerMockito to mock static methods. Both have good wiki with examples.
– uli
Nov 25 '18 at 6:02
Yes, I want to test OriginalMethod().
– Awanish
Nov 25 '18 at 10:46
Whit such design it is not possible to unit test the method. You are creating Web3j object inside method and using it. There is no way to mock it.
– uli
Nov 25 '18 at 15:35
add a comment |
This method fetches ether using web3j Api.
public static BigInteger OriginalMethod(){
// connect to node
Web3j web3 = Web3j.build(new HttpService()); // defaults to
http://localhost:8545/
// send asynchronous requests to get balance
EthGetBalance ethGetBalance = web3
.ethGetBalance("0xAccountAddress", DefaultBlockParameterName.LATEST)
.sendAsync()
.get();
BigInteger wei = ethGetBalance.getBalance();
}
The below method is the mock method for getting ether.
public static BigInteger MockOriginalMethod(){
web3j=Mockito.mock(Web3j.class);//Mock web3j class
BigInteger bigValue=Mockito.mock(BigInteger.class);
Mockito.when(web3j.ethGetBalance(address, DefaultBlockParameterName.LATEST).sendAsync()
.get().getBalance()).thenReturn(bigValue);
return bigValue.valueOf(11);
}
java unit-testing mockito ethereum
This method fetches ether using web3j Api.
public static BigInteger OriginalMethod(){
// connect to node
Web3j web3 = Web3j.build(new HttpService()); // defaults to
http://localhost:8545/
// send asynchronous requests to get balance
EthGetBalance ethGetBalance = web3
.ethGetBalance("0xAccountAddress", DefaultBlockParameterName.LATEST)
.sendAsync()
.get();
BigInteger wei = ethGetBalance.getBalance();
}
The below method is the mock method for getting ether.
public static BigInteger MockOriginalMethod(){
web3j=Mockito.mock(Web3j.class);//Mock web3j class
BigInteger bigValue=Mockito.mock(BigInteger.class);
Mockito.when(web3j.ethGetBalance(address, DefaultBlockParameterName.LATEST).sendAsync()
.get().getBalance()).thenReturn(bigValue);
return bigValue.valueOf(11);
}
java unit-testing mockito ethereum
java unit-testing mockito ethereum
edited Nov 25 '18 at 10:44
Awanish
asked Nov 25 '18 at 2:09
Awanish Awanish
213
213
What do you want to test with this method? Do you want to testOriginalMethod()
? Mockito needs help for example from PowerMockito to mock static methods. Both have good wiki with examples.
– uli
Nov 25 '18 at 6:02
Yes, I want to test OriginalMethod().
– Awanish
Nov 25 '18 at 10:46
Whit such design it is not possible to unit test the method. You are creating Web3j object inside method and using it. There is no way to mock it.
– uli
Nov 25 '18 at 15:35
add a comment |
What do you want to test with this method? Do you want to testOriginalMethod()
? Mockito needs help for example from PowerMockito to mock static methods. Both have good wiki with examples.
– uli
Nov 25 '18 at 6:02
Yes, I want to test OriginalMethod().
– Awanish
Nov 25 '18 at 10:46
Whit such design it is not possible to unit test the method. You are creating Web3j object inside method and using it. There is no way to mock it.
– uli
Nov 25 '18 at 15:35
What do you want to test with this method? Do you want to test
OriginalMethod()
? Mockito needs help for example from PowerMockito to mock static methods. Both have good wiki with examples.– uli
Nov 25 '18 at 6:02
What do you want to test with this method? Do you want to test
OriginalMethod()
? Mockito needs help for example from PowerMockito to mock static methods. Both have good wiki with examples.– uli
Nov 25 '18 at 6:02
Yes, I want to test OriginalMethod().
– Awanish
Nov 25 '18 at 10:46
Yes, I want to test OriginalMethod().
– Awanish
Nov 25 '18 at 10:46
Whit such design it is not possible to unit test the method. You are creating Web3j object inside method and using it. There is no way to mock it.
– uli
Nov 25 '18 at 15:35
Whit such design it is not possible to unit test the method. You are creating Web3j object inside method and using it. There is no way to mock it.
– uli
Nov 25 '18 at 15:35
add a comment |
0
active
oldest
votes
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53464083%2fhow-to-write-a-mock-method-for-getting-ether-balance-using-web3j-api-i-am-tryin%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
0
active
oldest
votes
0
active
oldest
votes
active
oldest
votes
active
oldest
votes
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53464083%2fhow-to-write-a-mock-method-for-getting-ether-balance-using-web3j-api-i-am-tryin%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
What do you want to test with this method? Do you want to test
OriginalMethod()
? Mockito needs help for example from PowerMockito to mock static methods. Both have good wiki with examples.– uli
Nov 25 '18 at 6:02
Yes, I want to test OriginalMethod().
– Awanish
Nov 25 '18 at 10:46
Whit such design it is not possible to unit test the method. You are creating Web3j object inside method and using it. There is no way to mock it.
– uli
Nov 25 '18 at 15:35