JMockitの私の理解は、模造されたオブジェクトのすべてのインスタンスをモックで置き換えるということです(別途指示しない限り)。JMockit:モックオブジェクトを起動する必要がある場合のNullポインタエラー?
したがって私は模擬しようとしているオブジェクトをインスタンス化した後にNPEを取得することに困惑しています。
テストの目的は、NPEを引き起こすオブジェクトを調査することではありませんが、一部の入力を検証するためのデータベースアクションを実行するため、テストを実行するためには模擬する必要があります。
テスト中の私のコードは、(それが仕事のコードだとして、パスタをコピーし、それにもかかわらず、問題を強調すべきではない)、このようなものです:
public class ClassToTest{
public execute(){
MyDependency myDep = getDependency();
myDep.doSomething(); //I get a NPE here, implying getDependency returned null
}
protected MyDependency getDependency(){
return new MyDependency("an Arg", "another Arg");
}
}
私の試験方法:
@Test
public void testCreateHorseDogMeetingByCodeDataProviderTruncated()
throws IllegalArgumentException, SQLException,
IllegalCountryLocationCombo, MEPException {
// Arrange
ClassToTest myClass = new ClassToTest();
new NonStrictExpectations() {
MyDependency mockDep;
{
//Set up my expectations, not related to MyDependency
}
};
// Act
myClass.execute();
// Assert
new Verifications() {
{
//some verification stuff
}
};
}
缶誰このNPEの問題を解決してテストを終えることができますか?
MyDependencyは具象クラスです。引数リストについてのヒント – chrisbunney