68228


jMockit 1.28を使っています。

Expectationsの記述で以下のように書くと、`Warning: Redundant recording`という警告がコンソールに出力されます。

[code]

    @Test
    public void test(@Mocked Hoge hoge) {
        
        new Expectations() {{
            hoge.get();
            result = Collections.emptyList();
        }};
        
        assertThat(hoge.get().isEmpty()).isEqualTo(true);
    }
    
    public static class Hoge {
        public List<String> get() {
            return Arrays.asList("aa");
        }
    }
    
[/code]

この警告がなぜ出てくるのかいまいち掴めない（どうやらこのケースの場合、`result =
`を書かなくても良い？）のですが、Eclipse上でコンソールウィンドウが毎回表示されてJUnitの結果が隠れてしまうため、とても鬱陶しいです。  
この出力を抑制することはできないでしょうか？

なお、`result = `を省略する、という手段は取りたくないです。  
書き忘れなのかどうか、テストコードが読み手にとって分かりにくくなってしまうので。


CC BY-SA 4.0
2020-07-02T09:00:51.053
68216
2020-07-02T21:30:07.743
8078
question
java eclipse jmockit
jMockitの「Warning: Redundant recording」というコンソール出力を抑制したい


質問文のコードを実行してみましたが、現時点での最新バージョン(と思われる)

  * JUnit: 5.6.2
  * JMockit: 1.49

では再現しませんでした。

  * [Warning: Redundant recording and confused cascading #352](https://github.com/jmockit/jmockit1/issues/352) \- jmockit/jmockit1

というissueを見つけたので

  * JUnit: 4.13
  * JMockit: 1.28

で試したところ、たしかにそのようなメッセージが出力されました。  
従って、issueに書かれている通り、JMockit特定バージョンで発現するバグであると思われます。

対処方法は、JMockitのバージョンを上げる、ということになります。  
([リリースノート](https://jmockit.github.io/changes.html)からは1.29で修正されているように読めますが、試したところ、メッセージが出力されなくなっているのは1.30以降のようです…？)


CC BY-SA 4.0
2020-07-02T21:07:12.507
68228
2020-07-02T21:30:07.743
2020-07-02T21:30:07.743
2808
2808
68216
answer