Можно ли получить значение хранилища в тесте на модуль Java?JAVA

Программисты JAVA общаются здесь
Anonymous
Можно ли получить значение хранилища в тесте на модуль Java?

Сообщение Anonymous »

У меня есть приложение Java, которое заполняет переменные члена класса со значениями, которые сохраняются в хранилище путем введения экземпляра класса в сервис, а не явно называют конструктор класса.

Код: Выделить всё

@Component
public class MyVaultClass {
private final String vaultValue1;
private final String vaultValue2;

@Inject
public MyVaultClass (@Value("${vaultValue1}") String vaultValue1,
@Value("${vaultValue2}") String vaultValue2 {
this.vaultValue1 = vaultValue1;
this.vaultValue2 = vaultValue2;

//Now the values are set
}
}
< /code>
И это услуга, которая его реализует. < /p>
Нет необходимости явно вызывать конструктор для myvaultclass или myservice. < /p>
@Component
public class MyService {

private final MyVaultClass myVaultClass ;

@Inject
public MyService (MyVaultClass myVaultClass ) {

this.myVaultClass = myVaultClass;

}
}
< /code>
И это работает очень хорошо, чтобы установить значения в myvaultclass для значений в хранилище.@RunWith(EasyMockRunner.class)
public class MyVaultClassTest {

@Mock
private MyVaultClass myVaultClass;

//This fails when the test is run
@Inject
public MyVaultClassTest (MyVaultClass myVaultClass) {
this.myVaultClass = myVaultClass;
}

}
< /code>
И если я сделаю что -то подобное, он не выйдет из строя во время выполнения - но значения, которые он должен захватить из хранилища.@RunWith(EasyMockRunner.class)
public class MyVaultClassTest {

@Mock
private MyVaultClass myVaultClass;

//This won't fail during runtime - but the vault values are null
@Before
public void setUp() {
documentManager = new S3DocumentManager(@Value("${vaultValue1}"), @Value("${vaultValue2}"));
}

}
Есть предложения?
Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/794 ... -unit-test

Вернуться в «JAVA»