5

私は自分のプロジェクトのモックフレームワークとしてjMockを実験していました。クラスとインターフェースの両方をモックする必要がある状況になりました。私ClassImposteriser.INSTANCEはコンテキストのなりすましを開始するためにを使用しました。

クラスとモックへValidatorのインターフェースを想定しています。PersonインターフェイスをモックしようとしたときにPerson、問題が発生しましたNoClassFoundDefError。クラスをあざけるとValidator問題ありませんでした。

そのクラスとインターフェイスの両方が必要ですが、問題を解決できません。助けてください。

コード例:

嘲笑

private Mockery context = new JUnit4Mockery() {{ setImposteriser(ClassImposteriser.Class) }};

クラス :

private Validator validator;

インターフェース :

private Person person;

内部試験方法

validator = context.Mock(Validator.class);---->作業中

person = context.Mock(Person.class);---->NoClassFoundDefError

4

1 に答える 1

12

提示されたコードはコンパイルされません (ClassImposteriser.INSTANCE である必要があります)。以下のコード例は問題なく動作するようです。おそらく、もう少し詳細を提供できますか?

public class Example {
    private Mockery context = new JUnit4Mockery() {
    {
        setImposteriser(ClassImposteriser.INSTANCE);
    }
    };

    @Test
    public void testStuff() {
    Validator validator = context.mock(Validator.class);
    Person person = context.mock(Person.class);

    // do some stuff...
    }

    public static interface Person {
    }

    public static class Validator {
    }
}
于 2009-06-19T20:02:44.920 に答える