How to stub extended class that has protected methodHow do you assert that a certain exception is thrown in JUnit 4 tests?How to run test methods in specific order in JUnit4?Got ExceptionInInitializerError when mocking constructor of a class with Powermock. How to fix it?Interface with default methods vs Abstract class in Java 8How to Convert a Java 8 Stream to an Array?Test Class with @RunWith(PowerMockRunner.class) annotation runs test cases twice when extending another classHow to install Java 8 on MacWhat's the difference between map and flatMap methods in Java 8?Mocking a private methodPowerMock + Robolectric + Dagger2
What is the smallest number n> 5 so that 5 ^ n ends with "3125"?
What is this high flying aircraft over Pennsylvania?
Air travel with refrigerated insulin
El Dorado Word Puzzle II: Videogame Edition
Is there a reason to prefer HFS+ over APFS for disk images in High Sierra and/or Mojave?
Ways of geometrical multiplication
Alignment of six matrices
Sound waves in different octaves
Telemetry for feature health
I'm just a whisper. Who am I?
How do I prevent inappropriate ads from appearing in my game?
How to preserve electronics (computers, iPads and phones) for hundreds of years
Did I make a mistake by ccing email to boss to others?
How much do grades matter for a future academia position?
Why does the Persian emissary display a string of crowned skulls?
Origin of pigs as a species
Language involving irrational number is not a CFL
Why is participating in the European Parliamentary elections used as a threat?
Echo with obfuscation
Unable to disable Microsoft Store in domain environment
Can I cause damage to electrical appliances by unplugging them when they are turned on?
Why the "ls" command is showing the permissions of files in a FAT32 partition?
What in this world is she trying to say?
How do I tell my boss that I'm quitting in 15 days (a colleague left this week)
How to stub extended class that has protected method
How do you assert that a certain exception is thrown in JUnit 4 tests?How to run test methods in specific order in JUnit4?Got ExceptionInInitializerError when mocking constructor of a class with Powermock. How to fix it?Interface with default methods vs Abstract class in Java 8How to Convert a Java 8 Stream to an Array?Test Class with @RunWith(PowerMockRunner.class) annotation runs test cases twice when extending another classHow to install Java 8 on MacWhat's the difference between map and flatMap methods in Java 8?Mocking a private methodPowerMock + Robolectric + Dagger2
I have a legacy code that not great.
I would like to write a test for it without changing anything in the code.
So I tried to use Powermock, but the mock of extended class keep going to a real class.
How can I test this? Is it even possible without changing the code dramatically?
public class A extends B
public static MyObject process(final List<String> myList)
List<Integer> myIntList = getSomething(123);
MyObject obj = new MyObject();
return obj.get(myIntList);
public class B
protected static MySource MY_SOURCE = new MySource();
protected static List<Integer> getSomething(String id)
List<Integer> intList = new ArrayList<>();
intList.add(123);
return intList
@RunWith(PowerMockRunner.class)
@PrepareForTest(B.class)
public class ATest
@InjectMocks
private A aClass;
@Before
public void setUp()
initMocks(this);
PowerMockito.when(B.class, "getSomething", "123").thenReturn(Collections.EMPTY_LIST());
@Test
public void testProcess()
List<String> inputList = new ArrayList<>();
inputList.add("mylist1");
MyObject result = aClass.process(inputList);
assertNotNull(result);
junit java-8 powermock powermockito
add a comment |
I have a legacy code that not great.
I would like to write a test for it without changing anything in the code.
So I tried to use Powermock, but the mock of extended class keep going to a real class.
How can I test this? Is it even possible without changing the code dramatically?
public class A extends B
public static MyObject process(final List<String> myList)
List<Integer> myIntList = getSomething(123);
MyObject obj = new MyObject();
return obj.get(myIntList);
public class B
protected static MySource MY_SOURCE = new MySource();
protected static List<Integer> getSomething(String id)
List<Integer> intList = new ArrayList<>();
intList.add(123);
return intList
@RunWith(PowerMockRunner.class)
@PrepareForTest(B.class)
public class ATest
@InjectMocks
private A aClass;
@Before
public void setUp()
initMocks(this);
PowerMockito.when(B.class, "getSomething", "123").thenReturn(Collections.EMPTY_LIST());
@Test
public void testProcess()
List<String> inputList = new ArrayList<>();
inputList.add("mylist1");
MyObject result = aClass.process(inputList);
assertNotNull(result);
junit java-8 powermock powermockito
Your sample does not compile and is incomplete (what isMyObjectand what doesobj.get(myIntList)do?!) but from the looks of it you need to remove theaClassfield, theinitMocks(this)call and add aPowerMockito.mockStatic(B.class);before thePowerMockito.when(B.class....call. If you can provide a correct sample I can double-check, but without it I can only guess/assume...
– Morfic
Mar 8 at 15:32
add a comment |
I have a legacy code that not great.
I would like to write a test for it without changing anything in the code.
So I tried to use Powermock, but the mock of extended class keep going to a real class.
How can I test this? Is it even possible without changing the code dramatically?
public class A extends B
public static MyObject process(final List<String> myList)
List<Integer> myIntList = getSomething(123);
MyObject obj = new MyObject();
return obj.get(myIntList);
public class B
protected static MySource MY_SOURCE = new MySource();
protected static List<Integer> getSomething(String id)
List<Integer> intList = new ArrayList<>();
intList.add(123);
return intList
@RunWith(PowerMockRunner.class)
@PrepareForTest(B.class)
public class ATest
@InjectMocks
private A aClass;
@Before
public void setUp()
initMocks(this);
PowerMockito.when(B.class, "getSomething", "123").thenReturn(Collections.EMPTY_LIST());
@Test
public void testProcess()
List<String> inputList = new ArrayList<>();
inputList.add("mylist1");
MyObject result = aClass.process(inputList);
assertNotNull(result);
junit java-8 powermock powermockito
I have a legacy code that not great.
I would like to write a test for it without changing anything in the code.
So I tried to use Powermock, but the mock of extended class keep going to a real class.
How can I test this? Is it even possible without changing the code dramatically?
public class A extends B
public static MyObject process(final List<String> myList)
List<Integer> myIntList = getSomething(123);
MyObject obj = new MyObject();
return obj.get(myIntList);
public class B
protected static MySource MY_SOURCE = new MySource();
protected static List<Integer> getSomething(String id)
List<Integer> intList = new ArrayList<>();
intList.add(123);
return intList
@RunWith(PowerMockRunner.class)
@PrepareForTest(B.class)
public class ATest
@InjectMocks
private A aClass;
@Before
public void setUp()
initMocks(this);
PowerMockito.when(B.class, "getSomething", "123").thenReturn(Collections.EMPTY_LIST());
@Test
public void testProcess()
List<String> inputList = new ArrayList<>();
inputList.add("mylist1");
MyObject result = aClass.process(inputList);
assertNotNull(result);
junit java-8 powermock powermockito
junit java-8 powermock powermockito
asked Mar 7 at 2:51
user293655user293655
51110
51110
Your sample does not compile and is incomplete (what isMyObjectand what doesobj.get(myIntList)do?!) but from the looks of it you need to remove theaClassfield, theinitMocks(this)call and add aPowerMockito.mockStatic(B.class);before thePowerMockito.when(B.class....call. If you can provide a correct sample I can double-check, but without it I can only guess/assume...
– Morfic
Mar 8 at 15:32
add a comment |
Your sample does not compile and is incomplete (what isMyObjectand what doesobj.get(myIntList)do?!) but from the looks of it you need to remove theaClassfield, theinitMocks(this)call and add aPowerMockito.mockStatic(B.class);before thePowerMockito.when(B.class....call. If you can provide a correct sample I can double-check, but without it I can only guess/assume...
– Morfic
Mar 8 at 15:32
Your sample does not compile and is incomplete (what is
MyObject and what does obj.get(myIntList) do?!) but from the looks of it you need to remove the aClass field, the initMocks(this) call and add a PowerMockito.mockStatic(B.class); before the PowerMockito.when(B.class.... call. If you can provide a correct sample I can double-check, but without it I can only guess/assume...– Morfic
Mar 8 at 15:32
Your sample does not compile and is incomplete (what is
MyObject and what does obj.get(myIntList) do?!) but from the looks of it you need to remove the aClass field, the initMocks(this) call and add a PowerMockito.mockStatic(B.class); before the PowerMockito.when(B.class.... call. If you can provide a correct sample I can double-check, but without it I can only guess/assume...– Morfic
Mar 8 at 15:32
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%2f55035304%2fhow-to-stub-extended-class-that-has-protected-method%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%2f55035304%2fhow-to-stub-extended-class-that-has-protected-method%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
Your sample does not compile and is incomplete (what is
MyObjectand what doesobj.get(myIntList)do?!) but from the looks of it you need to remove theaClassfield, theinitMocks(this)call and add aPowerMockito.mockStatic(B.class);before thePowerMockito.when(B.class....call. If you can provide a correct sample I can double-check, but without it I can only guess/assume...– Morfic
Mar 8 at 15:32