2016年7月20日水曜日

[JMockit]バージョン1.23からはNonStrictExpectationsではなくExpectationsを使う

バージョン1.23で非推奨になって、1.25で完全に削除されたようです。

JMockitの新しいバージョンを使う場合は、NonStrictExpectationsを使うのではなく、Expectationsを使います。


モックが返す値を設定する際にminTimesを使って、最小の呼び出し回数に0を設定する。
これで、NonStrictExpectationsと同じような動きを実現できるようになる。
        new Expectations() {{
            mockList.add("hoge");
            minTimes = 0;

            mockList.get(0);
            result = "1"; minTimes = 0;
        }};

2016年7月19日火曜日

[JMockit]VerificationsでMatcherを使って、モックに渡された値をアサートする

JMockitでモックオブジェクトのメソッドに渡されたオブジェクトをアサートしたい場合は、withArgThatを使う。

使い方

検証したいメソッドの呼び出しに対して、withArgThatを使用して、検証用のwithArgThatを指定する。

この例の場合は、単純にmockList.add("hoge")で置き換えできるが・・・
引数をキャプチャするwithCaptureを使ってたけど、こっちのほうが便利。

    @Mocked
    private List mockList;

    @Test
    public void sample() throws Exception {
        mockList.add("hoge");

        new Verifications() {{
            mockList.add(withArgThat(is("hoge")));
        }};
    }