Как создать пробный тест для оператора google spanner и Statement Builder - PullRequest
0 голосов
/ 05 февраля 2020

Я пытаюсь создать 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

...