Использования JUnit для тестированияJMockit издеваться не получает уничтожены
классов:Есть класс TestAccess.java
, имеющего
static private TestAccess instance = new TestAccess();
public static TestAccess getTestAccess() {
returns instance;
}
Для тестирования тестового класса A.java
используется JMockit для имитации getTestAccess
методы
@Mock
TestAccess mockTestaccess;
@Test
public void testMethod() {
new MockUp<TestAccess>() {
@mockit.Mock
public TestAccess getTestAccess() {
return mockTestaccess;
}
};
TestAccess test=TestAccess.getTestAccess();
}
В другом классе B.java
Я не хочу использовать moker и звоню TestAccess.java
следующим
@Test
public void doTest()
{
TestAccess test=TestAccess.getTestAccess();
}
B.java
если работать независимо друг от друга, реальный TestAccess
экземпляр возвращается и работает отлично.
Однако во время мавена запустить его не удается, так как даже в B.java
в TestAccess.getTestAccess()
возвращение Ложная определяется в A.java
, а не реальный случай, как и ожидалось.
Может ли кто-нибудь указать, как это можно решить.
Согласно разработчику JMockit, это почти всегда признак неправильного использования, если вам нужно явно вызывать 'tearDown()'. Это никогда не понадобится. Макет автоматически возвращается при выходе из области, в которой определяется 'MockUp'. Но вы указали слишком мало информации о своем коде, чтобы увидеть полученную вами ошибку. – Vampire
Добавили некоторые подробности. Попробуем поделиться более подробной информацией, если этого недостаточно. – Rameez