Я использую JUnit для модульного тестирования. Предположим, я хочу протестировать класс B
(методы класса B
). Предположим, у нас есть еще один класс A
, который является основным классом (содержит метод main
) и имеет некоторые поля protected static
.JUnit инициализация статических полей
Теперь это класс B
использует некоторые из этих статических полей класса A
. Поэтому, если я тестирую класс B
, эти статические поля класса A
не существуют.
Как я могу проверить класс B
без выполнения программы (выполняющий класс A
)?
Редактировать: Я должен уточнить это. Давайте предположим, что мы имеем следующий класс А в ИПВ/упаковке1/classA.java:
public classA {
protected static int field1;
protected static int field2;
public static void main(String[] args) {
// initialize static fields.
}
}
Теперь давайте предположим, что мы имеем еще один класс B в том же пакете SRC/package1/classB.java.
public ClassB {
public ClassB() {
// Do some stuff.
}
public void someMethod() {
// Access of static fields from A.
classA.field1....
classA.field2....
}
}
Теперь у меня есть тест JUnit в тестовом/упаковке1/classBTest.java для тестирования класса В. Но проблема в том, что field1 и field2 не инициализируются.
Как я могу вручную инициализировать в JUnit два поля classA.field1 и classA.field2 без выполнения основного метода класса A?
Вы имеете в виду частные статические поля, когда вы говорите о классе 'A'? Если они являются закрытыми, то классу 'B' не будет разрешено обращаться к ним, используя JUnit или иначе. – Bobulous
Нет, я имею в виду защищенные статические поля в классе A. Класс A и класс B находятся в одном пакете. – machinery
Я думаю, вам нужно будет показать нам код, который выдает ошибку, и точное сообщение об ошибке, которое бросается. Похоже, у вас не должно быть проблем со ссылкой на статические поля в 'A' от' B', поэтому вам нужно отредактировать свой вопрос и предоставить дополнительную информацию. – Bobulous