Mit JUnit zum TestenJMockit Mock nicht immer zerstört
classes-eine Klasse TestAccess.java
mit
static private TestAccess instance = new TestAccess();
public static TestAccess getTestAccess() {
returns instance;
}
Für eine Testklasse Testen A.java
verwendet JMockit die getTestAccess
Methode
@Mock
TestAccess mockTestaccess;
@Test
public void testMethod() {
new MockUp<TestAccess>() {
@mockit.Mock
public TestAccess getTestAccess() {
return mockTestaccess;
}
};
TestAccess test=TestAccess.getTestAccess();
}
zu verspotten In einer anderen Klasse B.java
möchte ich nicht Mock verwenden und anrufenwie folgt
@Test
public void doTest()
{
TestAccess test=TestAccess.getTestAccess();
}
B.java
wenn unabhängig laufen gelassen, die wirkliche TestAccess
Instanz zurückgegeben wird und funktioniert einwandfrei.
jedoch während Maven führen Sie es wie auch in B.java
die TestAccess.getTestAccess()
Rückkehr der Mock in A.java
und nicht die wirkliche Instanz wie erwartet definiert ausfällt.
Könnte jemand sagen, wie dies gelöst werden kann.
Laut JMockit-Entwickler ist es fast immer ein Zeichen falscher Verwendung, wenn Sie 'tearDown()' explizit aufrufen müssen. Dies sollte niemals notwendig sein. Ein Mock wird automatisch zurückgesetzt, wenn der Bereich verlassen wird, in dem der 'MockUp' definiert ist. Sie haben jedoch zu wenig Details zu Ihrem Code angegeben, um den von Ihnen gemachten Fehler zu sehen. – Vampire
Haben einige Details hinzugefügt .. versuchen, weitere Details zu teilen, wenn dies nicht genug ist. – Rameez