2011-10-26 15 views
0

以下TestNGのJMockit「期待を記録するための無効なコンテキスト」で失敗(6.3)テストケースはTestNGのテストケースは

@Listeners({ Initializer.class }) 
public final class ClassUnderTestTest { 

private ClassUnderTest cut; 

@SuppressWarnings("unused") 
@BeforeMethod 
private void initialise() { 
    cut = new ClassUnderTest(); 
} 

@Test 
public void doSomething() { 
    new Expectations() { 
     MockedClass tmc; 
     { 
      tmc.doMethod("Hello"); result = "Hello"; 
     } 
    }; 
    String result = cut.doSomething(); 
    assertEquals(result, "Hello"); 
} 

}

「期待の記録のために無効なコンテキスト」エラーを生成しますテスト中のクラスは以下の通りです。

public class ClassUnderTest { 

MockedClass service = new MockedClass(); 
MockedInterface ifce = new MockedInterfaceImpl(); 

public String doSomething() { 
    return (String) service.doMethod("Hello"); 
} 

public String doSomethingElse() { 
    return (String) ifce.testMethod("Hello again"); 
} 
} 

私はjavaagentコマンドライン引数を必要としない@Listeners注釈を使用していますので、という仮定を作っています。この仮定は間違っている可能性があります....

誰かが私が逃したことを指摘できますか?

答えて

1

JMockit-TestNG Initializerは、テスト実行ごとに1回実行する必要があるため、個々のテストクラスで@Listenersを使用すると動作しません。

代わりに、リスナーまたは-javaagentパラメータを指定する必要なく(JDK 1.5で実行されている場合を除く)、TestNG 6.2+で透過的に動作するJMockit 0.999.11にアップグレードするだけです。

+0

ありがとうございます、ちょうどバージョンのアップデートが問題をソートしました。リスナーを指摘してください。情報をありがとう。 – sweetfa

関連する問題