Я прочитал по крайней мере 20 сообщений, но все еще не мог найти ответ. Итак, разместив этот вопрос. Может быть, это ответ в другом посте, который я не смог найти.
class OuterService {
InnerService innerService;
@Autowired
public void setInnerService(InnerService innerService){
this.innerService = innerService;
}
public void method() {
List<C> listOfC = new ArrayList<C>();
C c = new C();
c.setUserProfiles(someObject);
c = innerService.invokeMethod(String str1,Map map,
String str2, Object obj1, String str3, String str4,
C c, String str5);
c.setCreatedDate(some String value); // Here c comes null while executing jUnits.
listOfC.add(c);
}
}
Вот мой тестовый класс:
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Matchers;
import org.mockito.Mock;
import org.mockito.Mockito;
import org.mockito.MockitoAnnotations;
import org.mockito.junit.MockitoJUnitRunner;
import com.pogo.service.DeviceRegistrationService;
@SuppressFBWarnings("RV_RETURN_VALUE_IGNORED_NO_SIDE_EFFECT")
@SpringBootTest
@RunWith(MockitoJUnitRunner.class)
class ClassOuterServiceTest {
@InjectMocks
OuterService outerService;
@Mock
InnerService innerService;
@Mock C c;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
outerService.setInnerService(innerService);
}
@Test
public void methodTest() {
when(innerService.invokeMethod(Mockito.anyString(),
Mockito.any(Map.class), Mockito.anyString(),Mockito.anyString(),
Mockito.any(PersonSessionToken.class), Mockito.anyString(),Mockito.anyString(), Mockito.anyString(),
Mockito.any(RequestHeader.class),Mockito.any(C.class),
Mockito.anyString() )).thenReturn(c);
doNothing().when(c).invokeCMethod();
outerService.method();
}
}
Но я получаю нулевое значение внутри объекта c в OuterService. java. Кроме того, если я использую Matchers.any () или Matchers.anyString () в invokeMethod (), тогда он показывает исключение Matchers.
Какое подходящее решение?