Skip to content

Commit eea21ae

Browse files
authored
bael-3314:update jmockit articles (#14320)
1 parent f372563 commit eea21ae

7 files changed

Lines changed: 37 additions & 94 deletions

File tree

testing-modules/mocks/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@
6767
<javafaker.version>0.15</javafaker.version>
6868
<jukito.version>1.5</jukito.version>
6969
<easymock.version>3.5.1</easymock.version>
70-
<jmockit.version>1.41</jmockit.version>
70+
<jmockit.version>1.49</jmockit.version>
7171
<jimf.version>1.1</jimf.version>
7272
</properties>
7373

testing-modules/mocks/src/main/java/com/baeldung/jmockit/AdvancedCollaborator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,12 +8,12 @@ public AdvancedCollaborator(String string) throws Exception{
88
i = string.length();
99
}
1010
public String methodThatCallsPrivateMethod(int i){
11-
return privateMethod() + i;
11+
return protectedMethod() + i;
1212
}
1313
public int methodThatReturnsThePrivateField(){
1414
return privateField;
1515
}
16-
private String privateMethod(){
16+
protected String protectedMethod(){
1717
return "default:";
1818
}
1919
class InnerAdvancedCollaborator{}
Lines changed: 22 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,33 @@
11
package com.baeldung.jmockit;
22

3-
import static org.junit.Assert.assertEquals;
3+
import mockit.*;
4+
import org.junit.Test;
45

5-
import java.util.ArrayList;
6+
import java.io.Serializable;
7+
import java.util.Comparator;
68
import java.util.List;
79

8-
import com.baeldung.jmockit.AdvancedCollaborator;
9-
import org.junit.Test;
10-
import org.junit.runner.RunWith;
10+
import static org.junit.Assert.assertEquals;
11+
import static org.junit.Assert.assertNull;
1112

12-
import mockit.Deencapsulation;
13-
import mockit.Expectations;
14-
import mockit.Invocation;
15-
import mockit.Mock;
16-
import mockit.MockUp;
17-
import mockit.Mocked;
18-
import mockit.Tested;
19-
import mockit.integration.junit4.JMockit;
13+
public class AdvancedCollaboratorIntegrationTest {
2014

21-
@RunWith(JMockit.class)
22-
public class AdvancedCollaboratorIntegrationTest<MultiMock extends List<String> & Comparable<List<String>>> {
15+
interface IList<T> extends List<T> {}
16+
interface IComparator extends Comparator<Integer>, Serializable {}
17+
static class MultiMock {
18+
IList<?> get() { return null; }
19+
IComparator compareTo() { return null; }
20+
}
2321

2422
@Tested
2523
private AdvancedCollaborator mock;
2624

27-
@Mocked
28-
private MultiMock multiMock;
2925

3026
@Test
3127
public void testToMockUpPrivateMethod() {
3228
new MockUp<AdvancedCollaborator>() {
3329
@Mock
34-
private String privateMethod() {
30+
protected String protectedMethod() {
3531
return "mocked: ";
3632
}
3733
};
@@ -52,40 +48,26 @@ public void testToMockUpDifficultConstructor() throws Exception {
5248
}
5349

5450
@Test
55-
public void testToSetPrivateFieldDirectly() {
56-
Deencapsulation.setField(mock, "privateField", 10);
57-
assertEquals(10, mock.methodThatReturnsThePrivateField());
51+
public void testToSetPrivateFieldDirectly(@Injectable("10") int privateField) {
52+
assertEquals(10, privateField);
5853
}
5954

6055
@Test
6156
public void testToGetPrivateFieldDirectly() {
62-
int value = Deencapsulation.getField(mock, "privateField");
63-
assertEquals(5, value);
57+
assertEquals(5, mock.methodThatReturnsThePrivateField());
6458
}
6559

6660
@Test
6761
@SuppressWarnings("unchecked")
68-
public void testMultipleInterfacesWholeTest() {
62+
public void testMultipleInterfacesWholeTest(@Mocked MultiMock multiMock) {
6963
new Expectations() {
7064
{
71-
multiMock.get(5); result = "foo";
72-
multiMock.compareTo((List<String>) any); result = 0;
65+
multiMock.get(); result = null;
66+
multiMock.compareTo(); result = null;
7367
}
7468
};
75-
assertEquals("foo", multiMock.get(5));
76-
assertEquals(0, multiMock.compareTo(new ArrayList<>()));
69+
assertNull(multiMock.get());
70+
assertNull(multiMock.compareTo());
7771
}
7872

79-
@Test
80-
@SuppressWarnings("unchecked")
81-
public <M extends List<String> & Comparable<List<String>>> void testMultipleInterfacesOneMethod(@Mocked M mock) {
82-
new Expectations() {
83-
{
84-
mock.get(5); result = "foo";
85-
mock.compareTo((List<String>) any);
86-
result = 0; }
87-
};
88-
assertEquals("foo", mock.get(5));
89-
assertEquals(0, mock.compareTo(new ArrayList<>()));
90-
}
9173
}

testing-modules/mocks/src/test/java/com/baeldung/jmockit/ExpectationsIntegrationTest.java

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,17 @@
11
package com.baeldung.jmockit;
22

3-
import static org.junit.Assert.assertEquals;
4-
import static org.junit.Assert.fail;
5-
6-
import java.util.ArrayList;
7-
import java.util.List;
8-
9-
import org.hamcrest.BaseMatcher;
10-
import org.hamcrest.Description;
11-
import org.junit.Test;
12-
import org.junit.runner.RunWith;
13-
143
import mockit.Delegate;
154
import mockit.Expectations;
165
import mockit.Mocked;
176
import mockit.Verifications;
18-
import mockit.integration.junit4.JMockit;
7+
import org.junit.Test;
8+
9+
import java.util.ArrayList;
10+
import java.util.List;
11+
12+
import static org.junit.Assert.assertEquals;
13+
import static org.junit.Assert.fail;
1914

20-
@RunWith(JMockit.class)
2115
@SuppressWarnings("unchecked")
2216
public class ExpectationsIntegrationTest {
2317

@@ -91,15 +85,11 @@ public void testWithTimes(@Mocked ExpectationsCollaborator mock) {
9185
@Test
9286
public void testCustomArgumentMatching(@Mocked ExpectationsCollaborator mock) {
9387
new Expectations() {{
94-
mock.methodForArgThat(withArgThat(new BaseMatcher<Object>() {
95-
@Override
88+
mock.methodForArgThat(with(new Delegate<Object>() {
9689
public boolean matches(Object item) {
9790
return item instanceof Model && "info".equals(((Model) item).getInfo());
9891
}
9992

100-
@Override
101-
public void describeTo(Description description) {
102-
}
10393
}));
10494
}};
10595
mock.methodForArgThat(new Model());

testing-modules/mocks/src/test/java/com/baeldung/jmockit/LoginControllerIntegrationTest.java

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,13 @@
11
package com.baeldung.jmockit;
22

3-
import mockit.*;
4-
import mockit.integration.junit4.JMockit;
53
import com.baeldung.testCase.LoginController;
64
import com.baeldung.testCase.LoginDao;
75
import com.baeldung.testCase.LoginService;
86
import com.baeldung.testCase.UserForm;
9-
import org.hamcrest.BaseMatcher;
10-
import org.hamcrest.Description;
7+
import mockit.*;
118
import org.junit.Assert;
129
import org.junit.Test;
13-
import org.junit.runner.RunWith;
1410

15-
@RunWith(JMockit.class)
1611
public class LoginControllerIntegrationTest {
1712

1813
@Injectable
@@ -110,16 +105,10 @@ public void argumentMatching() {
110105
loginService.login((UserForm) any);
111106
result = true;
112107
// complex matcher
113-
loginService.setCurrentUser(withArgThat(new BaseMatcher<String>() {
114-
@Override
108+
loginService.setCurrentUser(with(new Delegate<String>() {
115109
public boolean matches(Object item) {
116110
return item instanceof String && ((String) item).startsWith("foo");
117111
}
118-
119-
@Override
120-
public void describeTo(Description description) {
121-
//NOOP
122-
}
123112
}));
124113
}};
125114

testing-modules/mocks/src/test/java/com/baeldung/jmockit/PerformerIntegrationTest.java

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,8 @@
11
package com.baeldung.jmockit;
22

3-
import com.baeldung.jmockit.Collaborator;
4-
import com.baeldung.jmockit.Model;
5-
import com.baeldung.jmockit.Performer;
6-
import org.junit.Test;
7-
import org.junit.runner.RunWith;
8-
93
import mockit.*;
10-
import mockit.integration.junit4.JMockit;
4+
import org.junit.Test;
115

12-
@RunWith(JMockit.class)
136
public class PerformerIntegrationTest {
147

158
@Injectable

testing-modules/mocks/src/test/java/com/baeldung/jmockit/ReusingIntegrationTest.java

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,9 @@
11
package com.baeldung.jmockit;
22

3-
import com.baeldung.jmockit.Collaborator;
4-
import com.baeldung.jmockit.Model;
5-
import com.baeldung.jmockit.Performer;
3+
import mockit.*;
64
import org.junit.Before;
75
import org.junit.Test;
8-
import org.junit.runner.RunWith;
96

10-
import mockit.Expectations;
11-
import mockit.Injectable;
12-
import mockit.Mocked;
13-
import mockit.Tested;
14-
import mockit.Verifications;
15-
import mockit.integration.junit4.JMockit;
16-
17-
@RunWith(JMockit.class)
187
public class ReusingIntegrationTest {
198

209
@Injectable

0 commit comments

Comments
 (0)