Я пытаюсь создать Mock для google spanner, но не получаю сообщение об ошибке.
Метод класса -
public List<T> test(Emp emp)
{
String sql = "SELECT * FROM EMP where VAL= @val;
- упоминаются лишь несколько логик, а затем ниже строки, которая нуждается в насмешке.
Statement.Builder buildStatement = Statement.newBuilder(sql);
buildStatement.bind("val").to(11);
List<Emp> testList= this.spannerTemplate.query(Emp.class,
buildStatement.build(), null);
Тестовый класс:
@RunWith(PowerMockRunner.class)
@PrepareForTest({ Statement.class })
public class Test
{
---------
---------
---------
Statement statement = PowerMockito.mock(Statement.class);
PowerMockito.whenNew(Statement.class).withAnyArguments().thenReturn(statement);
Mockito.doReturn(builder).when(statement).newBuilder(any(String.class));
when(this.spannerTemplate.query(Emp.class, builder.build(), null)).thenReturn(list);
--------
}
Ошибка на данный момент ниже, java .lang.IllegalStateException: Не удалось преобразовать класс с именем com.google.cloud.spanner.Statement , Причина: null
at org.powermock.core.classloader.MockClassLoader.loadMockClass(MockClassLoader.java:296)
at org.powermock.core.classloader.MockClassLoader.loadModifiedClass(MockClassLoader.java:204)
Если я изменю способ Насмешки, тогда получу исключение Null Pointer или подобный тип ошибки. Я не могу понять, как издеваться над вышеуказанной строкой 3.
Это из google.spanner