Kürzlich frage ich mich, ob ich in Notiz oder Qiita schreiben soll.
Wie man schreibt, wenn man immer vergisst und sich immer über einen Teil lustig machen will.
@Slf4j
@Service
public class HighHolidayService {
//Urlaubsliste monatlich zusammengefasst
Map<String, List<LocalDate>> highHolidayCache = new HashMap<>();
//Zu testende Methode
public List<LocalDate> getHolidayList(LocalDate targetDate) {
String key = String.format("%d%02d", targetDate.getYear(), targetDate.getMonthValue());
if (highHolidayCache.containsKey(key)) {
return highHolidayCache.get(key);
}
List<LocalDate> holidayList = selectRecords(targetDate);
highHolidayCache.put(key, holidayList);
return holidayList;
}
//Ich möchte diese Methode verspotten!!!!
List<LocalDate> selectRecords(LocalDate targetDate) {
return null;
}
}
package jp.co.hogehoge.service;
import static org.mockito.Matchers.anyObject;
import static org.mockito.Mockito.doReturn;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import org.mockito.MockitoAnnotations;
import org.springframework.boot.test.mock.mockito.SpyBean;
public class HighHolidayServiceTest {
@SpyBean //von springboot@Wie schreibe ich Spion
HighHolidayService highHolidayService;
@Before
public void init() {
MockitoAnnotations.initMocks(this);
}
@Test
public void Holen Sie sich die Zielfeiertagsliste() {
List<LocalDate> returnHolidayList = new ArrayList<>();
returnHolidayList.add(LocalDate.of(2019, 07, 28));
returnHolidayList.add(LocalDate.of(2019, 07, 21));
returnHolidayList.add(LocalDate.of(2019, 07, 15));
returnHolidayList.add(LocalDate.of(2019, 07, 14));
returnHolidayList.add(LocalDate.of(2019, 07, 7));
// doReturn(Objekt, das zurückgegeben werden soll).when(Spionageobjekt).method()
//Vergiss diese Art zu schreiben! !!
doReturn(returnHolidayList).when(highHolidayService).selectRecords(anyObject());
LocalDate date = LocalDate.of(2019, 7, 15);
List<LocalDate> holidayList = highHolidayService.getHolidayList(date);
holidayList.forEach(System.out::println);
}
}
Es ist in Ordnung, jede Klasse zu verspotten, weil ich es oft mache, aber ich vergesse, einen Teil des Testziels zu verspotten, weil es nur gelegentlich erscheint. .. Oder besser gesagt, es gibt viele Gespräche, die besser zu klassifizieren sind (ja, aber es ist eine Logik, die nicht so viel sein muss).
Recommended Posts