EDIT: метод, который я тестирую, вызывает эту константу, определенную в другом классе, поэтому я хочу проверить, работает ли этот метод независимо от того, как другой класс определяет константу. Насмешка над этим была первой вещью, о которой я мог подумать, но я открыт для других идей о том, как проверить это чистым, безопасным способом
(Обобщены имена классов, методов и переменных)
Я пытаюсь понять, как написать тест.
Один из моих методов получает константу из другого класса, например:
OtherClass.CONSTANT
и эта константа определяется как:
public static final List<Long> CONSTANT =
ImmutableList.of(1, 2);
В тесте для этого метода я хочу смоделировать этот вызов. Я пробовал
when(OtherClass.CONSTANT).thenReturn(ImmutableList.of(1, 2));
но это дает мне эту ошибку:
RegularImmutableList cannot be returned by otherFunction()
otherFunction() should return String
otherFunction () - некоторая другая функция в базе кода, которая, кажется, не связана с чем-то, над чем я работал.
Я тоже пробовал
doReturn(ImmutableList.of(1, 2)).when(OtherClass.CONSTANT);
но, как вы можете догадаться, это дает мне эту ошибку:
Argument passed to when() is not a mock!
Example of correct stubbing:
doThrow(new RuntimeException()).when(mock).someMethod();
Я довольно растерялся относительно того, как именно я должен насмехаться над этой константой.