0
これは私の問題です:私はSuperClassを拡張するクラスUnderTestをテストしています。 SuperClassにはプライベートマップ( "myMap")とそれを感じるプライベートメソッドがあります。 Imがnew()コンストラクタでUnderTestクラスのインスタンスを作成するとき、スーパークラスのmyMapは初期化されません(現実的には、これはシステム全体のフレームワークによって行われますが、テストのためにはできません)。 マップが== nullであるため、テストImを実行しているときにNullPointerExceptionを受け取りました。 私はinvoke()でメソッドをモックしようとしましたが、私は同じ例外が発生するので何か間違っています。私のミスがjmockitで夕食のプライベートメソッドを模擬することができます
public class UnderTest extends SuperClass
{
public void methodUnderTest()
{....
put(str, obj);
....}
}
public class SuperClass
{
private Map<String, Object> myMap;
private void innerMethod (String str, Object obj)
{.... myMap.put(str, obj);}
}
あるクラスがjmockit
Class ThestSomething{
@Mocked
SuperClas superClass;
@BeforeMethod
public void setUp
{
UnderTest underTest = new UnderTest();
}
@Test
public void testThis()
{
new Expectetions {{ invoke("superClass", "innerMethod", str, obj); }};
}