Как проверить значения объекта, созданного в тестируемом методе? - PullRequest
0 голосов
/ 20 мая 2019

Я тестирую метод уровня сервиса, который создает новый объект и вызывает другой сервис с этим объектом.

В методе включена некоторая обработка, при которой в создаваемый объект устанавливаются некоторые значения.

Как проверить, установлены ли в объекте правильные значения?

public class A{
    void method aMethod(){
        //some json parsing... a = someValue;
        Xobject xobject = new Xobject();
        xobject.setValue(a);

        someOtherService.someVoidMethod(xobject);
    }
}

Хотел проверить значения xobject.

Ответы [ 2 ]

0 голосов
/ 20 мая 2019

В качестве альтернативы решению, представленному Джокком, вы можете сделать следующее: Создать вспомогательную функцию, которая создаст для вас xobject:

public class A {
    Xobject makeXobjectFromJson(){
        //some json parsing... a = someValue;
        Xobject xobject = new Xobject();
        xobject.setValue(a);
        return xobject;
    }
    void method aMethod(){
        Xobject xobject = makeXobjectFromJson();
        someOtherService.someVoidMethod(xobject);
    }
}

Тестирование вспомогательной функции позволяет вам тестировать алгоритмическую часть вашего кода с помощью модульного тестирования, возможно, даже без необходимости что-либо издеваться. Взаимодействие с someOtherService может быть затем проверено в интеграционном тестировании.

0 голосов
/ 20 мая 2019

Если вы используете Mockito для настройки макета для someOtherService, вы можете использовать Mockito ArgumentCaptor для захвата xobject, и в своем тесте вы можете получить доступ к переменной и подтвердить ее.

https://static.javadoc.io/org.mockito/mockito-core/2.6.9/org/mockito/ArgumentCaptor.html

...