-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathchanges.html
3919 lines (3817 loc) · 209 KB
/
changes.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<!DOCTYPE html>
<html>
<head>
<title>JMockit - Development history</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link rel="stylesheet" type="text/css" href="prettify.css"/>
<link rel="shortcut icon" type="image/x-icon" href="favicon.ico"/>
</head>
<body>
<h1 class="header">
<a href="index.html">JMockit</a>
<span>An automated testing toolkit for Java</span>
</h1>
<table class="navBar"><tr>
<th><a href="tutorial.html">Tutorial</a></th>
<th><a href="http://github.com/jmockit/jmockit1">Source</a></th>
<th><a href="http://github.com/jmockit/jmockit1/issues">Issues</a></th>
<th><a href="changes.html">Release notes</a></th>
</tr></table>
<h1>Development history</h1>
<h2 id="current">
<a href="#current">Current release</a>
</h2>
<h3 id="1.49">Version <a href="#1.49">1.49</a> (Dec 29, 2019):</h3>
<ul>
<li>
Improved coverage tool activation: now having "<code>=coverage</code>" after the "<code>-javaagent</code>" parameter activates it even
if no "coverage-xyz" system properties are set.
</li>
<li>Removed the support for instance-specific matching through the assignment of instances to recorded constructor expectations.</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/636">#636</a>,
<a href="https://github.com/jmockit/jmockit1/issues/645">#645</a>.
</li>
</ul>
<h2 id="previous">
<a href="#previous">Previous releases</a>
</h2>
<h3 id="1.48">Version <a href="#1.48">1.48</a> (Aug 31, 2019):</h3>
<ul>
<li>
<strong>New feature</strong> for <em>scenario-oriented</em> tests:
<code class="annotation">@Tested(global = true)</code> now allows a single global instance to be created and reused by many tests.
</li>
<li>
Several small fixes and enhancements in the <strong>coverage</strong> tool.
The <code>coverage-output</code> configuration property now accepts the "html", "html-cp", and "html-nocp" values, where the first one
is equivalent to "html-nocp" and also the default (since call points are too CPU and memory expensive for larger test suites).
</li>
<li>
<strong>Dropped</strong> support for the <em>partial mocking of classes</em> through
<code>new Expectations(ToBeMocked.class) {...}</code>.
This constructor can still be used for the partial mocking of instances, though.
If a class needs to have only some constructors and/or <code>static</code> methods mocked, the use of a <code>MockUp</code> is the
recommended alternative.
See issue <a href="https://github.com/jmockit/jmockit1/issues/492">#492</a>.
</li>
<li>
Other issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/55">#55</a>,
<a href="https://github.com/jmockit/jmockit1/issues/623">#623</a>,
<a href="https://github.com/jmockit/jmockit1/issues/624">#624</a>.
</li>
</ul>
<h3 id="1.47">Version <a href="#1.47">1.47</a> (Jun 30, 2019):</h3>
<ul>
<li><strong>Removed</strong> the <code class="type">Deencapsulation</code> class, previously deprecated.</li>
<li>
<strong>Removed</strong> the <code>stubOutClassInitialization</code> attribute from <code class="annotation">@Mocked</code>,
previously deprecated.
</li>
<li>
Promoted the warning about <code class="annotation">@Mock</code> methods which target a <code>private</code> method/constructor to an
exception.
</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/598">#598</a>,
<a href="https://github.com/jmockit/jmockit1/issues/603">#603</a>,
<a href="https://github.com/jmockit/jmockit1/issues/609">#609</a>,
<a href="https://github.com/jmockit/jmockit1/issues/616">#616</a>,
<a href="https://github.com/jmockit/jmockit1/issues/617">#617</a>,
<a href="https://github.com/jmockit/jmockit1/issues/618">#618</a>,
<a href="https://github.com/jmockit/jmockit1/issues/619">#619</a>.
</li>
</ul>
<h3 id="1.46">Version <a href="#1.46">1.46</a> (Mar 31, 2019):</h3>
<ul>
<li>
<strong>Enhancement</strong>: added support for having a <code class="annotation">@Mock</code> method which matches all methods of
the same name in the faked class, regardless of their parameters. This "match-by-name-only" fake method must have only an
<code>Invocation</code> parameter.
</li>
<li>
<strong>Deprecated</strong> the <code class="type">Deencapsulation</code> class (which now only contains <code>getField</code>
methods).
</li>
<li>
<strong>Deprecated</strong> the <code>stubOutClassInitialization</code> attribute of the <code class="annotation">@Mocked</code>
annotation.
</li>
<li>Added support for JUnit 5.4.0.</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/582">#582</a>,
<a href="https://github.com/jmockit/jmockit1/issues/585">#585</a>,
<a href="https://github.com/jmockit/jmockit1/issues/587">#587</a>,
<a href="https://github.com/jmockit/jmockit1/issues/590">#590</a>,
<a href="https://github.com/jmockit/jmockit1/issues/596">#596</a>.
</li>
</ul>
<h3 id="1.45">Version <a href="#1.45">1.45</a> (Jan 27, 2019):</h3>
<ul>
<li>
Mocking annotations (<code class="annotation">@Mocked</code>, <code class="annotation">@Capturing</code>, and
<code class="annotation">@Injectable</code>) can no longer be used on Java SE collection and map interfaces, for two reasons:
1) on Java 8+, such interfaces include <em>default</em> methods, which do get mocked, easily causing unexpected results in tests;
2) mocking of said interfaces (and more generally, of all value-oriented types which basically encapsulate state without complex
behavior in methods) is a well known bad practice.<br>
In the particular case of having an <code class="annotation">@Injectable</code> collection/map field which is meant to be injected
into a <code class="annotation">@Tested</code> object, the test should be changed to use <code class="annotation">@Tested</code> as
well on the collection/map field, with its declaration positioned <em>before</em> the target <code class="annotation">@Tested</code>
field.
</li>
<li>Removed the <code>Deencapsulation.setField</code> methods, which were deprecated in version 1.44.</li>
<li>
Added a warning (printed to standard output) for <code class="annotation">@Mock</code> methods that target a <code>private</code>
method or constructor.
The intent is to disallow such mock methods in a future version.
</li>
<li>
Dropped the <strong>path coverage</strong> metric from the code coverage tool (mainly because of the difficulty in detecting
infeasible paths), and merged the other two ("line" and "data").
See issue <a href="https://github.com/jmockit/jmockit1/issues/148">#148</a>.
</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/567">#567</a>,
<a href="https://github.com/jmockit/jmockit1/issues/572">#572</a>,
<a href="https://github.com/jmockit/jmockit1/issues/573">#573</a>.
</li>
</ul>
<h3 id="1.44">Version <a href="#1.44">1.44</a> (Nov 25, 2018):</h3>
<ul>
<li><strong>Removed</strong> the <code>withArgThat(Matcher)</code> method, which was deprecated in version 1.43.</li>
<li>
Deprecated the <code>Deencapsulation.setField</code> methods, in favor of <code class="annotation">@Tested</code> and
<code class="annotation">@Injectable</code>.
</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/558">#558</a>,
<a href="https://github.com/jmockit/jmockit1/issues/562">#562</a>,
<a href="https://github.com/jmockit/jmockit1/issues/564">#564</a>.
</li>
</ul>
<h3 id="1.43">Version <a href="#1.43">1.43</a> (Sep 30, 2018):</h3>
<ul>
<li>
<strong>Deprecated</strong> the <code>withArgThat(Matcher)</code> method (available in the <code class="type">Expectations</code> and
<code class="type">Verifications</code> classes), in favor of argument capturing (the <code>withCapture(...)</code> methods) and the
<code>with(Delegate)</code> method.
</li>
<li>Issues closed: <a href="https://github.com/jmockit/jmockit1/issues/534">#534</a>.</li>
</ul>
<h3 id="1.42">Version <a href="#1.42">1.42</a> (Aug 26, 2018):</h3>
<ul>
<li>
JMockit now requires the use of the "<code>-javaagent</code>" JVM initialization parameter.
See <a href="tutorial/Introduction.html#runningTests">Running tests with JMockit</a>.
</li>
<li>
Dropped support for mock parameters in TestNG methods.
</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/515">#515</a>,
<a href="https://github.com/jmockit/jmockit1/issues/542">#542</a>.
</li>
</ul>
<h3 id="1.41">Version <a href="#1.41">1.41</a> (Jul 29, 2018):</h3>
<ul>
<li>
Added support for use of <code class="annotation">@Tested</code> as a meta-annotation in JUnit 4/5 test method parameters.
</li>
<li>
Restored capturing of already loaded Proxy classes, since unloaded proxies were still captured.
</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/532">#532</a>,
<a href="https://github.com/jmockit/jmockit1/issues/533">#533</a>.
</li>
</ul>
<h3 id="1.40">Version <a href="#1.40">1.40</a> (Jun 24, 2018):</h3>
<ul>
<li>
JMockit now requires JDK 1.7+ for test execution. Support for JDK 1.6 was dropped.
</li>
<li>
<strong>Removed</strong> the <code class="type">maxInstances</code> attribute of the <code>@Capturing</code>
annotation, which was deprecated in version 1.39.
</li>
<li>
<strong>Removed</strong> the <code class="type">FullVerificationsInOrder</code> class, which was deprecated in version 1.39.
</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/512">#512</a>,
<a href="https://github.com/jmockit/jmockit1/issues/513">#513</a>,
<a href="https://github.com/jmockit/jmockit1/issues/517">#517</a>,
<a href="https://github.com/jmockit/jmockit1/issues/519">#519</a>.
</li>
</ul>
<h3 id="1.39">Version <a href="#1.39">1.39</a> (Mar 25, 2018):</h3>
<ul>
<li>
<strong>Deprecated</strong> the <code>maxInstances</code> attribute of the
<code class="annotation">@Capturing</code> annotation.
This attribute provides a feature which is probably never used, and if used makes for difficult to understand
tests; existing tests using it (if any) should either be removed or rewritten.
</li>
<li>
<strong>Deprecated</strong> the <code class="type">FullVerificationsInOrder</code> class.
Existing tests using it, if any, can replace the one expectation block with two, a
<code class="type">VerificationsInOrder</code> block containing the verified expectations, followed by an empty
<code class="type">FullVerifications</code> block.
</li>
<li>
<strong>Removed</strong> the <code>MockUp#getMockInstance()</code> method, which was deprecated in version 1.37.
</li>
<li>
<strong>Removed</strong> the <code>unverifiedInvocations()</code> and <code>verifiedInvocations(...)</code>
methods, which were deprecated in version 1.38.
</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/504">#504</a>,
<a href="https://github.com/jmockit/jmockit1/issues/507">#507</a>.
</li>
</ul>
<h3 id="1.38">Version <a href="#1.38">1.38</a> (Dec 31, 2017):</h3>
<ul>
<li>
<strong>Dropped</strong> the support for <em>named</em> user-defined subclasses of
<code class="type">Expectations</code> and <code class="type">Verifications</code>, for simplicity and improved
performance.
</li>
<li>
<strong>Deprecated</strong> the <code>unverifiedInvocations()</code> and <code>verifiedInvocations(...)</code>
methods from the <code class="type">VerificationsInOrder</code> and <code class="type">FullVerifications</code>
classes.
These methods support "partially ordered verification", a feature which is probably never used, and if used make
for difficult to understand tests; existing tests using them (if any) should either be removed or rewritten.
</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/483">#483</a>,
<a href="https://github.com/jmockit/jmockit1/issues/485">#485</a>.
</li>
</ul>
<h3 id="1.37">Version <a href="#1.37">1.37</a> (Nov 26, 2017):</h3>
<ul>
<li>
<strong>Deprecated</strong> the <code>getMockInstance()</code> method from the <code class="type">MockUp</code>
class.
Normally, this method is only used to obtain an instance of a faked <em>interface</em>.
For faked <em>classes</em>, it has no practical use.
Instead of using a mock-up for an interface type, it's recommended to create a minimal implementation class, or
to use an existing implementation.
See deprecation comments in the API documentation.
</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/475">#475</a>,
<a href="https://github.com/jmockit/jmockit1/issues/479">#479</a>.
</li>
</ul>
<h3 id="1.36">Version <a href="#1.36">1.36</a> (Oct 29, 2017):</h3>
<ul>
<li>
<strong>Removed</strong> the <code class="type">StrictExpectations</code> class, deprecated in version 1.35.
</li>
<li>
<strong>Removed</strong> the "<code>invoke</code>" and "<code>newInstance</code>" methods from the
<code class="type">Deencapsulation</code> class, deprecated in version 1.35.
</li>
<li>
<strong>Removed</strong> the "<code>MockUp(T)</code>" constructor from the <code class="type">MockUp</code> class,
deprecated in version 1.35.
</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/463">#463</a>,
<a href="https://github.com/jmockit/jmockit1/issues/464">#464</a>,
<a href="https://github.com/jmockit/jmockit1/issues/471">#471</a>,
<a href="https://github.com/jmockit/jmockit1/issues/473">#473</a>.
</li>
</ul>
<h3 id="1.35">Version <a href="#1.35">1.35</a> (Sep 24, 2017):</h3>
<ul>
<li>
<strong>Deprecated</strong> the <code class="type">StrictExpectations</code> class.
Existing tests should instead use <code class="type">Expectations</code>, possibly adding a
"<code>new FullVerifications() {}</code>" block at the end, if detecting unrecorded invocations is still desired.
</li>
<li>
<strong>Deprecated</strong> the "<code>invoke</code>" and "<code>newInstance</code>" methods from the
<code class="type">Deencapsulation</code> class.
These are simple Reflection-backed convenience methods, which are no longer useful in the overall context of
JMockit APIs.
</li>
<li>
<strong>Deprecated</strong> the <strong><code>MockUp(T)</code></strong> constructor.
(Use of this constructor causes the given instance of type <code>T</code> to be the only one affected by the
fake implementations.)
This feature was never intended for the faking API in the first place, it's been rarely used, and has no
demonstrable use cases; existing tests that happen to use it should instead use real (non-faked) instances.
</li>
<li>
<strong>Renamed</strong> the "<code>mockups</code>" system property to "<code>fakes</code>".
</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/337">#337</a>,
<a href="https://github.com/jmockit/jmockit1/issues/450">#450</a>,
<a href="https://github.com/jmockit/jmockit1/issues/457">#457</a>,
<a href="https://github.com/jmockit/jmockit1/issues/458">#458</a>,
<a href="https://github.com/jmockit/jmockit1/issues/461">#461</a>.
</li>
</ul>
<h3 id="1.34">Version <a href="#1.34">1.34</a> (Aug 27, 2017):</h3>
<ul>
<li>Improved <code class="annotation">@Capturing</code> performance.</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/428">#428</a>,
<a href="https://github.com/jmockit/jmockit1/issues/429">#429</a>,
<a href="https://github.com/jmockit/jmockit1/issues/433">#433</a>,
<a href="https://github.com/jmockit/jmockit1/issues/435">#435</a>,
<a href="https://github.com/jmockit/jmockit1/issues/436">#436</a>,
<a href="https://github.com/jmockit/jmockit1/issues/437">#437</a>,
<a href="https://github.com/jmockit/jmockit1/issues/440">#440</a>,
<a href="https://github.com/jmockit/jmockit1/issues/442">#442</a>,
<a href="https://github.com/jmockit/jmockit1/issues/444">#444</a>,
<a href="https://github.com/jmockit/jmockit1/issues/445">#445</a>,
<a href="https://github.com/jmockit/jmockit1/issues/446">#446</a>,
<a href="https://github.com/jmockit/jmockit1/issues/448">#448</a>.
</li>
</ul>
<h3 id="1.33">Version <a href="#1.33">1.33</a> (Jun 25, 2017):</h3>
<ul>
<li>
Additional enhancements to <code class="annotation">@Tested</code>:
a) all available <code class="annotation">@Injectable</code>'s having <em>subtypes</em> of target fields and/or
constructor parameters are now considered for injection;
b) previous <code class="annotation">@Tested</code> values from annotated fields or parameters are now eligible
for injection into <code class="annotation">@Tested</code> objects, even without
<code>fullyInitialized = true</code>.
</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/418">#418</a>,
<a href="https://github.com/jmockit/jmockit1/issues/420">#420</a>,
<a href="https://github.com/jmockit/jmockit1/issues/425">#425</a>.
</li>
</ul>
<h3 id="1.32">Version <a href="#1.32">1.32</a> (May 28, 2017):</h3>
<ul>
<li>
Enhancements to <code class="annotation">@Tested</code>:
a) <em>field extraction</em> from a tested object into other <code class="annotation">@Tested</code> fields
declared after it now works for any field in the source object (including primitive types, arrays, and
collections), not only for injected dependencies;
b) the annotation can now be used on test method parameters;
c) new <code>value</code> attribute.
</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/404">#404</a>,
<a href="https://github.com/jmockit/jmockit1/issues/405">#405</a>,
<a href="https://github.com/jmockit/jmockit1/issues/407">#407</a>,
<a href="https://github.com/jmockit/jmockit1/issues/413">#413</a>,
<a href="https://github.com/jmockit/jmockit1/issues/415">#415</a>.
</li>
</ul>
<h3 id="1.31">Version <a href="#1.31">1.31</a> (Mar 26, 2017):</h3>
<ul>
<li>
<strong>Removed</strong> the <code>Expectations(Integer, Object...)</code>,
<code>StrictExpectations(Integer, Object...)</code>, <code>Verifications(int)</code>,
<code>FullVerifications(int)</code>, <code>FullVerifications(Integer, Object...)</code>,
<code>VerificationsInOrder(int)</code>, <code>FullVerificationsInOrder(int)</code>, and
<code>FullVerificationsInOrder(Integer, Object...)</code> constructors which take a
"<code>numberOfIterations</code>" parameter, which were deprecated in version 1.30.
</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/373">#373</a>,
<a href="https://github.com/jmockit/jmockit1/issues/375">#375</a>,
<a href="https://github.com/jmockit/jmockit1/issues/376">#376</a>,
<a href="https://github.com/jmockit/jmockit1/issues/384">#384</a>,
<a href="https://github.com/jmockit/jmockit1/issues/389">#389</a>,
<a href="https://github.com/jmockit/jmockit1/issues/393">#393</a>,
<a href="https://github.com/jmockit/jmockit1/issues/400">#400</a>.
</li>
</ul>
<h3 id="1.30">Version <a href="#1.30">1.30</a> (Dec 18, 2016):</h3>
<ul>
<li>
<strong>Dropped</strong> usage checks for the mocking and faking APIs.
</li>
<li>
<strong>Removed</strong> the <code>onInstance(mock)</code> method (deprecated in version 1.29 - see below) from
the <code class="type">Expectations</code> and <code class="type">Verifications</code> classes.
</li>
<li>
<strong>Removed</strong> the <code>returns(Object)</code> method (deprecated in version 1.29 - see below) from
the <code class="type">Expectations</code> class.
</li>
<li>
<strong>Deprecated</strong> the <code>Expectations(Integer, Object...)</code>,
<code>StrictExpectations(Integer, Object...)</code>, <code>Verifications(int)</code>,
<code>FullVerifications(int)</code>, <code>FullVerifications(Integer, Object...)</code>,
<code>VerificationsInOrder(int)</code>, <code>FullVerificationsInOrder(int)</code>, and
<code>FullVerificationsInOrder(Integer, Object...)</code> constructors which take a
"<code>numberOfIterations</code>" parameter.
Iterated recording of expectations is a rarely used feature, and indicative of poor testing practices (when used).
Existing tests which happen to use it should be reviewed or eliminated.
</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/359">#359</a>,
<a href="https://github.com/jmockit/jmockit1/issues/361">#361</a>,
<a href="https://github.com/jmockit/jmockit1/issues/365">#365</a>,
<a href="https://github.com/jmockit/jmockit1/issues/371">#371</a>.
</li>
</ul>
<h3 id="1.29">Version <a href="#1.29">1.29</a> (Oct 30, 2016):</h3>
<ul>
<li>
<strong>Removed</strong> the "<code>invocations</code>", "<code>minInvocations</code>", and
"<code>maxInvocations</code>" attributes from the <code class="annotation">@Mock</code> annotation, which were
deprecated in version 1.26.
</li>
<li>
<strong>Deprecated</strong> the <strong><code>onInstance(mock)</code></strong> method from classes
<code class="type">Expectations</code> and <code class="type">Verifications</code>.
Existing calls should be removed (leaving just "<code>mock</code>").
Tests that need to match invocations to specific mocked instances should instead make use of
<code class="annotation">@Injectable</code> or of multiple <code class="annotation">@Mocked</code>
fields/parameters of the same type.
</li>
<li>
<strong>Changed</strong> the signature of the "<code>Expectations#returns(Object, Object...)</code>" method to
just "<code>returns(Object)</code>", and <em>deprecated</em> it in favor of using the "<code>result</code>" field
(for a single return value) or the newly added method "<code>returns(Object, Object, Object...)</code>" (for a
<em>sequence</em> of multiple return values).
</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/225">#225</a>,
<a href="https://github.com/jmockit/jmockit1/issues/231">#231</a>,
<a href="https://github.com/jmockit/jmockit1/issues/346">#346</a>,
<a href="https://github.com/jmockit/jmockit1/issues/347">#347</a>,
<a href="https://github.com/jmockit/jmockit1/issues/350">#350</a>,
<a href="https://github.com/jmockit/jmockit1/issues/352">#352</a>,
<a href="https://github.com/jmockit/jmockit1/issues/353">#353</a>,
<a href="https://github.com/jmockit/jmockit1/issues/355">#355</a>.
</li>
</ul>
<h3 id="1.28">Version <a href="#1.28">1.28</a> (Sep 25, 2016):</h3>
<ul>
<li>
<strong>Removed</strong> the "<code>tearDown()</code>" method (deprecated in version 1.26) from the
<code class="type">MockUp</code> class.
</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/198">#198</a>,
<a href="https://github.com/jmockit/jmockit1/issues/203">#203</a>,
<a href="https://github.com/jmockit/jmockit1/issues/218">#218</a>,
<a href="https://github.com/jmockit/jmockit1/issues/252">#252</a>,
<a href="https://github.com/jmockit/jmockit1/issues/322">#322</a>,
<a href="https://github.com/jmockit/jmockit1/issues/331">#331</a>,
<a href="https://github.com/jmockit/jmockit1/issues/333">#333</a>,
<a href="https://github.com/jmockit/jmockit1/issues/334">#334</a>,
<a href="https://github.com/jmockit/jmockit1/issues/336">#336</a>,
<a href="https://github.com/jmockit/jmockit1/issues/339">#339</a>,
<a href="https://github.com/jmockit/jmockit1/issues/340">#340</a>,
<a href="https://github.com/jmockit/jmockit1/issues/341">#341</a>,
<a href="https://github.com/jmockit/jmockit1/issues/343">#343</a>.
</li>
</ul>
<h3 id="1.27">Version <a href="#1.27">1.27</a> (Aug 28, 2016):</h3>
<ul>
<li>
<strong>Removed</strong> the "<code>$</code>" field (deprecated in version 1.26) from
<code class="type">Expectations</code> and <code class="type">Verifications</code>.
</li>
<li>
Added a validation against the application of mock-ups to classes that are <em>internal</em> to the codebase of
the system under test.
Normally, mock-ups should only target types from <em>external</em> libraries or components.
</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/316">#316</a>,
<a href="https://github.com/jmockit/jmockit1/issues/317">#317</a>,
<a href="https://github.com/jmockit/jmockit1/issues/318">#318</a>.
</li>
</ul>
<h3 id="1.26">Version <a href="#1.26">1.26</a> (Jul 31, 2016):</h3>
<ul>
<li>
<strong>Deprecated</strong> the <code>MockUp#tearDown()</code> method.
Mock-up tear down is automatic, so explicit calls to this method are either made by mistake, or by misuse in
tests that should be broken down into two or more test methods.
</li>
<li>
<strong>Deprecated</strong> all three attributes from the <code class="annotation">@Mock</code> annotation
(<code>invocations</code>, <code>minInvocations</code>, and <code>maxInvocations</code>).
Use of said attributes is indicative of a behavior-oriented test that would be better written with the
Expectations API.
</li>
<li>
<strong>Deprecated</strong> the "<code>$</code>" special field that can be used when recording or verifying
expectations to provide a custom error message.
This feature is of dubious value and probably never used.
</li>
<li>
<strong>Dropped</strong> support for the <code>jmockit.properties</code> configuration file.
</li>
<li>
<strong>Added</strong> support for <strong>JUnit 5</strong> (the <code>5.0.0-M1</code> release of July 7).
Differently from JUnit 4 support (and like TestNG support), the relative order in the classpath between JMockit
and JUnit 5 dependencies is irrelevant - also, no configuration code needs to be added to a JUnit 5 test class
in order to use the JMockit API, it just works.
</li>
<li>
Added validations against redundant recordings which return the instance that would be returned through automatic
cascading, and against the redundant or contradictory use of different mocking annotations on the same mock
field/parameter.
</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/307">#307</a>,
<a href="https://github.com/jmockit/jmockit1/issues/310">#310</a>,
<a href="https://github.com/jmockit/jmockit1/issues/313">#313</a>.
</li>
</ul>
<h3 id="1.25">Version <a href="#1.25">1.25</a> (Jun 26, 2016):</h3>
<ul>
<li>
<strong>Removed</strong> the <code class="type">NonStrictExpectations</code> class, which was deprecated in
version 1.23.
</li>
<li>
<strong>Removed</strong> the methods <code>getMinInvocations()</code> and <code>getMaxInvocations()</code> of
the <code class="type">Invocation</code> class, which were deprecated in version 1.24.
</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/281">#281</a>,
<a href="https://github.com/jmockit/jmockit1/issues/290">#290</a>,
<a href="https://github.com/jmockit/jmockit1/issues/294">#294</a>,
<a href="https://github.com/jmockit/jmockit1/issues/298">#298</a>.
</li>
</ul>
<h3 id="1.24">Version <a href="#1.24">1.24</a> (May 29, 2016):</h3>
<ul>
<li>
The <strong>JMockit Coverage</strong> tool is no longer delivered in a separate jar (ie,
"<code>jmockit-coverage.jar</code> or the equivalent Maven artifact).
It is now embedded in <code>jmockit-1.x.jar</code>, but only gets activated in a test run when at least one of the
following system properties is set: <code>coverage-output</code>, <code>coverage-metrics</code>, or
<code>coverage-classes</code>.
</li>
<li>
<strong>Deprecated</strong> the methods <code>getMinInvocations()</code> and <code>getMaxInvocations()</code> of
class <code class="type">mockit.Invocation</code>.
</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/276">#276</a>,
<a href="https://github.com/jmockit/jmockit1/issues/277">#277</a>,
<a href="https://github.com/jmockit/jmockit1/issues/278">#278</a>,
<a href="https://github.com/jmockit/jmockit1/issues/280">#280</a>.
</li>
</ul>
<h3 id="1.23">Version <a href="#1.23">1.23</a> (Apr 24, 2016):</h3>
<ul>
<li>
<strong>Dropped</strong> support for the mocking of <code>private</code> methods/constructors when using the
Expectations API, to prevent misuse.
If still needed, they can be mocked or stubbed out with the application of a
<code class="type">MockUp<T></code>.
</li>
<li>
<strong>Deprecated</strong> the <code class="type">NonStrictExpectations</code> class.
Existing tests should use <code class="type">Expectations</code> instead.
</li>
<li>
Added support for JDK 9 (tested with builds 112 to 114).
</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/263">#263</a>,
<a href="https://github.com/jmockit/jmockit1/issues/264">#264</a>,
<a href="https://github.com/jmockit/jmockit1/issues/265">#265</a>,
<a href="https://github.com/jmockit/jmockit1/issues/266">#266</a>,
<a href="https://github.com/jmockit/jmockit1/issues/268">#268</a>,
<a href="https://github.com/jmockit/jmockit1/issues/271">#271</a>.
</li>
</ul>
<h3 id="1.22">Version <a href="#1.22">1.22</a> (Feb 28, 2016):</h3>
<ul>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/246">#246</a>,
<a href="https://github.com/jmockit/jmockit1/issues/248">#248</a>,
<a href="https://github.com/jmockit/jmockit1/issues/249">#249</a>,
<a href="https://github.com/jmockit/jmockit1/issues/251">#251</a>,
<a href="https://github.com/jmockit/jmockit1/issues/255">#255</a>,
<a href="https://github.com/jmockit/jmockit1/issues/256">#256</a>,
<a href="https://github.com/jmockit/jmockit1/issues/258">#258</a>.
</li>
</ul>
<h3 id="1.21">Version <a href="#1.21">1.21</a> (Dec 29, 2015):</h3>
<ul>
<li>
<strong>Enhancement</strong>: Added support for <em>constructor</em> injection when using
<code class="annotation">@Tested(fullyInitialized = true)</code>.
See issue <a href="https://github.com/jmockit/jmockit1/issues/224">#224</a>.
</li>
<li>
Other issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/227">#227</a>,
<a href="https://github.com/jmockit/jmockit1/issues/229">#229</a>,
<a href="https://github.com/jmockit/jmockit1/issues/233">#233</a>,
<a href="https://github.com/jmockit/jmockit1/issues/234">#234</a>,
<a href="https://github.com/jmockit/jmockit1/issues/235">#235</a>,
<a href="https://github.com/jmockit/jmockit1/issues/236">#236</a>,
<a href="https://github.com/jmockit/jmockit1/issues/241">#241</a>,
<a href="https://github.com/jmockit/jmockit1/issues/243">#243</a>.
</li>
</ul>
<h3 id="1.20">Version <a href="#1.20">1.20</a> (Oct 25, 2015):</h3>
<ul>
<li>
<strong>Enhancement</strong>: Several small improvements in the support for integration testing, when using
<code class="annotation">@Tested(fullyInitialized = true)</code>.
</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/201">#201</a>,
<a href="https://github.com/jmockit/jmockit1/issues/205">#205</a>,
<a href="https://github.com/jmockit/jmockit1/issues/206">#206</a>,
<a href="https://github.com/jmockit/jmockit1/issues/207">#207</a>,
<a href="https://github.com/jmockit/jmockit1/issues/208">#208</a>,
<a href="https://github.com/jmockit/jmockit1/issues/209">#209</a>,
<a href="https://github.com/jmockit/jmockit1/issues/210">#210</a>,
<a href="https://github.com/jmockit/jmockit1/issues/213">#213</a>,
<a href="https://github.com/jmockit/jmockit1/issues/214">#214</a>,
<a href="https://github.com/jmockit/jmockit1/issues/219">#219</a>,
<a href="https://github.com/jmockit/jmockit1/issues/220">#220</a>,
<a href="https://github.com/jmockit/jmockit1/issues/226">#226</a>.
</li>
</ul>
<h3 id="1.19">Version <a href="#1.19">1.19</a> (Aug 23, 2015):</h3>
<ul>
<li>
<strong>Removed</strong> the "<strong><code>value</code></strong>" attribute of
<code class="annotation">@Mocked</code>, which was deprecated in release 1.17.
Existing tests using "<code>@Mocked({"someMethod", "anotherMethod", ...})</code>" should simply omit the
attribute, or use partial mocking as applied with <code>new Expectations(objToPartiallyMock) { ... }</code>, or
apply a <code class="type">MockUp<T></code> class.
</li>
<li>
<strong>Enhancement</strong>: The coverage tool now supports classes loaded from a custom class loader.
See issue <a href="https://github.com/jmockit/jmockit1/issues/149">#149</a>.
</li>
<li>
Other issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/190">#190</a>,
<a href="https://github.com/jmockit/jmockit1/issues/191">#191</a>,
<a href="https://github.com/jmockit/jmockit1/issues/196">#196</a>.
</li>
</ul>
<h3 id="1.18">Version <a href="#1.18">1.18</a> (Jun 20, 2015):</h3>
<ul>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/168">#168</a>,
<a href="https://github.com/jmockit/jmockit1/issues/171">#171</a>,
<a href="https://github.com/jmockit/jmockit1/issues/173">#173</a>,
<a href="https://github.com/jmockit/jmockit1/issues/174">#174</a>,
<a href="https://github.com/jmockit/jmockit1/issues/176">#176</a>,
<a href="https://github.com/jmockit/jmockit1/issues/177">#177</a>,
<a href="https://github.com/jmockit/jmockit1/issues/181">#181</a>.
</li>
</ul>
<h3 id="1.17">Version <a href="#1.17">1.17</a> (Apr 26, 2015):</h3>
<ul>
<li>
<strong>Removed</strong> the "<strong><code>cascading</code></strong>" attribute of
<code class="annotation">@Mocked</code>, which had been previously deprecated.
Existing tests using "<code>@Mocked(cascading = false)</code>" should simply omit the attribute, or record an
expectation with "<code>result = null"</code> for the cascaded method in question.
</li>
<li>
<strong>Deprecated</strong> the "<strong><code>value</code></strong>" attribute of
<code class="annotation">@Mocked</code>, which is used for "static" partial mocking.
Existing uses should be replaced with "dynamic" partial mocking, by passing the instance or class to partially
mock in a call to the <code>Expectations(Object...)</code> constructor, or by applying a
<code class="type">MockUp<T></code> class.
</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/153">#153</a>,
<a href="https://github.com/jmockit/jmockit1/issues/155">#155</a>,
<a href="https://github.com/jmockit/jmockit1/issues/156">#156</a>,
<a href="https://github.com/jmockit/jmockit1/issues/158">#158</a>,
<a href="https://github.com/jmockit/jmockit1/issues/160">#160</a>,
<a href="https://github.com/jmockit/jmockit1/issues/161">#161</a>,
<a href="https://github.com/jmockit/jmockit1/issues/162">#162</a>,
<a href="https://github.com/jmockit/jmockit1/issues/163">#163</a>.
</li>
</ul>
<h3 id="1.16">Version <a href="#1.16">1.16</a> (Mar 15, 2015):</h3>
<ul>
<li>
<strong>New feature</strong>: The code coverage tool now finds <em>redundant</em> tests, listing them in the
HTML report.
A test is deemed to be redundant when it does not cover any additional line segments or paths that haven't yet
been covered by previous tests in the test run.
Each such test can, in principle, be removed from the test suite without weakening it, provided some other test
for the same scenario includes the assertions from the redundant test.<br/>
This is (likely) the <em>first</em> practical coverage tool to make this feature available.
</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/122">#122</a>,
<a href="https://github.com/jmockit/jmockit1/issues/138">#138</a>,
<a href="https://github.com/jmockit/jmockit1/issues/139">#139</a>,
<a href="https://github.com/jmockit/jmockit1/issues/140">#140</a>,
<a href="https://github.com/jmockit/jmockit1/issues/141">#141</a>,
<a href="https://github.com/jmockit/jmockit1/issues/142">#142</a>,
<a href="https://github.com/jmockit/jmockit1/issues/144">#144</a>,
<a href="https://github.com/jmockit/jmockit1/issues/146">#146</a>,
<a href="https://github.com/jmockit/jmockit1/issues/147">#147</a>.
</li>
</ul>
<h3 id="1.15">Version <a href="#1.15">1.15</a> (Feb 15, 2015):</h3>
<ul>
<li>
<strong>Dropped</strong> support for versions of TestNG older than 6.2.
See issue <a href="https://github.com/jmockit/jmockit1/issues/133">#133</a>.
</li>
<li>
<strong>Deprecated</strong> the "<strong><code>cascading</code></strong>" attribute of
<code class="annotation">@Mocked</code>.
Existing tests using "<code>@Mocked(cascading = false)</code>" should simply omit the attribute, or record an
expectation with "<code>result = null"</code> for the cascaded method in question.
</li>
<li>
Other issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/73">#73</a>,
<a href="https://github.com/jmockit/jmockit1/issues/74">#74</a>,
<a href="https://github.com/jmockit/jmockit1/issues/118">#118</a>,
<a href="https://github.com/jmockit/jmockit1/issues/119">#119</a>,
<a href="https://github.com/jmockit/jmockit1/issues/120">#120</a>,
<a href="https://github.com/jmockit/jmockit1/issues/121">#121</a>,
<a href="https://github.com/jmockit/jmockit1/issues/124">#124</a>,
<a href="https://github.com/jmockit/jmockit1/issues/126">#126</a>,
<a href="https://github.com/jmockit/jmockit1/issues/129">#129</a>,
<a href="https://github.com/jmockit/jmockit1/issues/130">#130</a>.
</li>
</ul>
<h3 id="1.14">Version <a href="#1.14">1.14</a> (Dec 19, 2014):</h3>
<ul>
<li>
<strong>Removed</strong> the <code class="annotation">@Cascading</code> annotation, which was deprecated in
version 1.12.
Since that version, cascading is active by default on all mocked types, although it can be disabled by specifying
<code class="annotation">@Mocked</code><code>(<strong>cascading = false</strong>)</code>.
</li>
<li>
<strong>Enhancement</strong>: Conditionals and loops will now trigger an exception when found inside an
expectation recording block, to prevent API misuse and to encourage simpler tests.
See issue <a href="https://github.com/jmockit/jmockit1/issues/97">#97</a>.
</li>
<li>
<strong>Enhancement</strong>: Added support for the <code class="annotation">@Autowired</code> and
<code class="annotation">@Value</code> annotations of the Spring DI framework.
In addition, all annotated dependencies (using <code class="annotation">@Inject</code>,
<code class="annotation">@Resource</code>, or <code class="annotation">@Autowired</code>) in a
<code class="annotation">@Tested</code> object will now <em>require</em> a corresponding
<code class="annotation">@Injectable</code>; this is done for the following reasons: a) consistency with DI
frameworks; b) preventing <code class="type">NullPointerExceptions</code>'s from uninitialized dependencies;
c) encouraging cohesive classes with few dependencies; and d) encouraging the creation of at least one test for
each injected dependency.
See issue <a href="https://github.com/jmockit/jmockit1/issues/103">#103</a>.
</li>
<li>
Other issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/9">#9</a>,
<a href="https://github.com/jmockit/jmockit1/issues/11">#11</a>,
<a href="https://github.com/jmockit/jmockit1/issues/26">#26</a>,
<a href="https://github.com/jmockit/jmockit1/issues/94">#94</a>,
<a href="https://github.com/jmockit/jmockit1/issues/96">#96</a>,
<a href="https://github.com/jmockit/jmockit1/issues/98">#98</a>,
<a href="https://github.com/jmockit/jmockit1/issues/107">#107</a>,
<a href="https://github.com/jmockit/jmockit1/issues/107">#110</a>,
<a href="https://github.com/jmockit/jmockit1/issues/116">#116</a>.
</li>
</ul>
<h3 id="1.13">Version <a href="#1.13">1.13</a> (Oct 26, 2014):</h3>
<ul>
<li>
<strong>Added</strong> the new class <em><code class="type">StrictExpectations</code></em> as a sibling to
<code class="type">NonStrictExpectations</code>.
The shared base class, <code class="type">Expectations</code>, no longer records <em>strict</em> expectations when
used on its own; instead, its expectations are just like the ones from
<code class="type">NonStrictExpectations</code>, but with a default minimum invocation count of <code>1</code>
(one), as if recorded with a "<code>minTimes = 1</code>" constraint.
This change in API semantics is meant to bring the following benefits:
<ol>
<li>
More intuitive semantics when using the <code class="type">Expectations</code> class.
New users usually don't expect "<code>new Expectations() {{ ... }}</code>" blocks to be strict, but they
tend to expect such recorded expectations to require <em>at least one</em> matching invocation from the code
under test.
</li>
<li>
Recording of strict expectations will not occur by mistake anymore, as it will require the intentional
selection of the explicitly-named <code class="type">StrictExpectations</code> subclass.
</li>
<li>
Use of the longer-named <code class="type">NonStrictExpectations</code> subclass will become much less
common.
Essentially, this subclass is now mostly useful in <em>test setup</em> methods only
(<code class="annotation">@Before</code>, <code class="annotation">@BeforeMethod</code>), since such
shared expectations will often not be used by <em>all</em> tests in the test class (hence they should be
"<code>minTimes = 0</code>" by default).
</li>
</ol>
Existing tests can continue to use <code class="type">NonStrictExpectations</code> as before, but it's recommended
to replace such uses with <code class="type">Expectations</code>, when they occur in test methods; when they
occur in test <em>setup</em> methods, however, use of the non-strict subclass should be kept, unless one prefers
to add an explicit "<code>minTimes = 0</code>" constraint to each recorded expectation.
Tests that do want to record strict expectations, however, should change "<code>new Expectations...</code>" blocks
to the equivalent "<code>new StrictExpectations...</code>" form.
</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/43">#43</a>,
<a href="https://github.com/jmockit/jmockit1/issues/70">#70</a>,
<a href="https://github.com/jmockit/jmockit1/issues/71">#71</a>,
<a href="https://github.com/jmockit/jmockit1/issues/72">#72</a>,
<a href="https://github.com/jmockit/jmockit1/issues/75">#75</a>,
<a href="https://github.com/jmockit/jmockit1/issues/78">#78</a>,
<a href="https://github.com/jmockit/jmockit1/issues/80">#80</a>,
<a href="https://github.com/jmockit/jmockit1/issues/81">#81</a>,
<a href="https://github.com/jmockit/jmockit1/issues/82">#82</a>,
<a href="https://github.com/jmockit/jmockit1/issues/84">#84</a>,
<a href="https://github.com/jmockit/jmockit1/issues/87">#87</a>,
<a href="https://github.com/jmockit/jmockit1/issues/88">#88</a>,
<a href="https://github.com/jmockit/jmockit1/issues/89">#89</a>,
<a href="https://github.com/jmockit/jmockit1/issues/92">#92</a>.
</li>
</ul>
<h3 id="1.12">Version <a href="#1.12">1.12</a> (Sep 21, 2014):</h3>
<ul>
<li>
<strong>Deprecated</strong> the <code class="annotation">@Cascading</code> annotation.
Mocking now cascades by default on any mocked type, unless specified otherwise through the new
<code>boolean</code> <strong><code>cascading</code></strong> attribute of <code class="annotation">@Mocked</code>
(which is <code>true</code> by default).<br/>
This change may break existing tests if they require <code>null</code> to be returned, or if the return type of
some method <em>must</em> not be mocked; in such cases, the test will have to be changed to either record a
explicit <code>null</code> return, or to deactivate cascading.
</li>
<li>
The annotations <code class="annotation">@Tested</code> and <code class="annotation">@Mocked</code> can now be
applied together to the same field.
This causes the tested object to become <em>partially</em> mocked, as if it had been passed in a call to the
<code>NonStrictExpectations(Object...)</code> constructor.
</li>
<li>
The annotations <code class="annotation">@Tested</code> and <code class="annotation">@Injectable</code> can also
be applied together to the same field.
Besides causing the tested object to be partially mocked, it can also get injected into another
<code class="annotation">@Tested</code> field, if one exists having a suitable dependency.
This ability can be used in integration tests where a top-level tested object has one or more second-level
tested objects as dependencies.
</li>
<li>
Improved the support for integration tests through
<code class="annotation">@Tested(fullyInitialized = true)</code> fields, by properly handling injected fields of
type <code class="type">javax.inject.Provider<T></code>, and <em>servlet</em> classes (which extend
<code class="type">javax.servlet.GenericServlet</code>, whose <code>init()</code> and <code>destroy()</code>
methods get automatically called).
</li>
<li>
New system property "<strong><code>coverage-maxCallPoints</code></strong>", to allow overriding the default value
(10 call points per covered line of source code, in the HTML report).
</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/4">#4</a>,
<a href="https://github.com/jmockit/jmockit1/issues/48">#48</a>,
<a href="https://github.com/jmockit/jmockit1/issues/50">#50</a>,
<a href="https://github.com/jmockit/jmockit1/issues/52">#52</a>,
<a href="https://github.com/jmockit/jmockit1/issues/53">#53</a>,
<a href="https://github.com/jmockit/jmockit1/issues/54">#54</a>,
<a href="https://github.com/jmockit/jmockit1/issues/57">#57</a>,
<a href="https://github.com/jmockit/jmockit1/issues/58">#58</a>,
<a href="https://github.com/jmockit/jmockit1/issues/59">#59</a>,
<a href="https://github.com/jmockit/jmockit1/issues/62">#62</a>,
<a href="https://github.com/jmockit/jmockit1/issues/63">#63</a>,
<a href="https://github.com/jmockit/jmockit1/issues/65">#65</a>,
<a href="https://github.com/jmockit/jmockit1/issues/66">#66</a>.
</li>
</ul>
<h3 id="1.11">Version <a href="#1.11">1.11</a> (Aug 24, 2014):</h3>
<ul>
<li>
<strong>Removed</strong> the methods <code>with(Object)</code> and <code>with(T, Object)</code> from base class
<code class="type">mockit.Invocations</code> (shared by <code class="type">Expectations</code> and
<code class="type">Verifications</code>), which were deprecated in release 1.9.<br/>
As documented in the corresponding API deprecation comments, existing calls to these methods should be replaced
with calls to <code>with(Delegate)</code> or <code>withArgThat(org.hamcrest.Matcher)</code>.
</li>
<li>
Improved support for the IBM "J9" JRE (tested on version 7 of the SDK), to about the same level as the Oracle
"HotSpot" JREs.
The J9 JRE has a few limitations, however:
1) <code>native</code> methods cannot be redefined and therefore are never mocked;
2) JMockit initialization without the use of "-javaagent" only works if running in <em>debug</em> mode;
3) the <code>java.lang.System</code> class cannot be reliably mocked.
</li>
<li>
Upgraded the ASM library used internally to version 5.0.3.
</li>
<li>
Issues closed:
<a href="https://github.com/jmockit/jmockit1/issues/13">#13</a>,
<a href="https://github.com/jmockit/jmockit1/issues/20">#20</a>,
<a href="https://github.com/jmockit/jmockit1/issues/21">#21</a>,
<a href="https://github.com/jmockit/jmockit1/issues/22">#22</a>,
<a href="https://github.com/jmockit/jmockit1/issues/25">#25</a>,
<a href="https://github.com/jmockit/jmockit1/issues/27">#27</a>,
<a href="https://github.com/jmockit/jmockit1/issues/28">#28</a>,
<a href="https://github.com/jmockit/jmockit1/issues/29">#29</a>,
<a href="https://github.com/jmockit/jmockit1/issues/30">#30</a>,
<a href="https://github.com/jmockit/jmockit1/issues/31">#31</a>,