第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

與 Mockito Mock 進行寬松的字符串匹配

與 Mockito Mock 進行寬松的字符串匹配

函數(shù)式編程 2023-09-27 10:37:57
我有一個測試來驗證空對象的返回(如果該對象的字符串屬性與預(yù)先確定的值不匹配)。我的代碼是import guru.springframework.sfgpetclinic.model.Speciality;import guru.springframework.sfgpetclinic.repositories.SpecialtyRepository;import org.junit.jupiter.api.Test;import org.junit.jupiter.api.extension.ExtendWith;import org.mockito.InjectMocks;import org.mockito.Mock;import org.mockito.Mockito;import org.mockito.junit.jupiter.MockitoExtension;import java.util.Optional;import static org.assertj.core.api.Assertions.assertThat;import static org.junit.jupiter.api.Assertions.assertThrows;import static org.mockito.BDDMockito.*;import static org.junit.jupiter.api.Assertions.*;import static org.mockito.BDDMockito.given;import static org.mockito.BDDMockito.then;@ExtendWith(MockitoExtension.class)class SpecialtySDJpaServiceTest {    @Mock    SpecialtyRepository specialtyRepository;    @InjectMocks    SpecialtySDJpaService service;    @Test    void testSaveLambdaNoMatch() {       // Given       final String MATCH_ME = "MATCH_ME";       Speciality speciality = new Speciality();       speciality.setDescription("Not a match");       Speciality savedSpeciality = new Speciality();       savedSpeciality.setId(1L);       // Need mock to only return on match MATCH_ME string       given(specialtyRepository.save(argThat(argument -> argument.getDescription().equals(MATCH_ME)))).willReturn(savedSpeciality);       // When       Speciality returnedSpeciality = service.save(speciality);       // Then       assertNull(returnedSpeciality);    }   // Other tests...}此測試失敗并顯示消息org.mockito.exceptions.misusing.PotentialStubbingProblem: Strict stubbing argument mismatch. Please check:- this invocation of 'save' method:specialtyRepository.save(guru.springframework.sfgpetclinic.model.Speciality@19ae6bb我認為問題在于 argThat() 使用精確匹配方案。我想將模擬匹配設(shè)置為寬松通過@Mock(lenient = true)SpecialtyRepository specialtyRepository 但 Intellij 不識別 lenient 參數(shù)。我正在使用 JUnit 5 和 Mockito 2.23.0
查看完整描述

1 回答

?
慕神8447489

TA貢獻1780條經(jīng)驗 獲得超1個贊

@Mock(lenient = true) 是在Mockitoversion中引入的2.23.3。

您必須升級或使用other way來編寫以下內(nèi)容:

lenient().when(specialtyRepository.save(argThat(argument?->?argument.getDescription().equals(MATCH_ME)))).willReturn(savedSpeciality);



查看完整回答
反對 回復(fù) 2023-09-27
  • 1 回答
  • 0 關(guān)注
  • 271 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號