我正在尝试测试服务,这是一段代码:
@Test
public void comprovarCercaBuuida(){
/*Objecte que contindrà l'info de la cerca*/
DeuteBackBean deuteBB;
List<IDeute> respostaDeutesExe = new ArrayList<IDeute>();
List<IDeute> respostaDeutesVol = new ArrayList<IDeute>();
List<IDeute> respostaDeutesTots = new ArrayList<IDeute>();
/*tot els paràmetres del servei s'han de passar com a mockito!!!*/
Mockito.when(serveiGpt.obtenirDeutes(Mockito.eq(CLAU_SUBJECTE_BUIT),Mockito.eq(E_TIPUS_DEUTE_HIS),Mockito.eq(PERIODE_DEUTE_EXE))).thenReturn(respostaDeutesExe);
Mockito.verify(serveiGpt,Mockito.atLeastOnce()).obtenirDeutes(Mockito.eq(CLAU_SUBJECTE_BUIT), Mockito.eq(E_TIPUS_DEUTE_HIS), Mockito.eq(PERIODE_DEUTE_EXE));
Mockito.when(serveiGpt.obtenirDeutes(Mockito.eq(CLAU_SUBJECTE_BUIT),Mockito.eq(E_TIPUS_DEUTE_HIS),Mockito.eq(PERIODE_DEUTE_VOL))).thenReturn(respostaDeutesVol);
//Mockito.verify(serveiPersones,Mockito.atLeastOnce()).cercarPersones(Mockito.eq(PATRO_CERCA_AMB_RESULTATS), Mockito.any(IPager.class));
Mockito.when(serveiGpt.obtenirDeutes(Mockito.eq(CLAU_SUBJECTE_BUIT),Mockito.eq(E_TIPUS_DEUTE_HIS),Mockito.eq(PERIODE_DEUTE_TOTS))).thenReturn(respostaDeutesTots);
//Mockito.verify(serveiPersones,Mockito.atLeastOnce()).cercarPersones(Mockito.eq(PATRO_CERCA_AMB_RESULTATS), Mockito.any(IPager.class));
}
但我发现了 maven 的这个异常:T
ests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 3.998 sec <<< FAILURE!
comprovarCercaBuuida(cat.base.gpt.ui.ConsultaDeutesTest) Time elapsed: 0.078 sec <<< FAILURE!
Wanted but not invoked:
iGptService.obtenirDeutes(
cat.base.tip.domini.impl.ClauSubjecte@1f,
HISTORIC,
EXECUTIVA
);
-> at cat.base.gpt.ui.ConsultaDeutesTest.comprovarCercaBuuida(ConsultaDeutesTest.java:114)
Actually, there were zero interactions with this mock.
at cat.base.gpt.ui.ConsultaDeutesTest.comprovarCercaBuuida(ConsultaDeutesTest.java:114)
我真的不明白我在做什么错。ty。
代码@beforMethod
@BeforeMethod
public void prepararDadesResposta(){
IDeute dExe, dVol;
context = new MockExternalContext();
respostaDeutesExe = Collections.synchronizedList(new ArrayList<IDeute>());
respostaDeutesVol = Collections.synchronizedList(new ArrayList<IDeute>());
respostaDeutesTots = Collections.synchronizedList(new ArrayList<IDeute>());
long start = System.currentTimeMillis();
long end = start + 1000;
while (System.currentTimeMillis() < end){
dExe = new Deute();
dExe.setAdrecaCompletaCom("Això és un prova.");
dExe.setAdrecaCompletaTrib("Això és un prova.");
dExe.setCarrerTrib("Això és un prova.");
dExe.setCasaTrib("Això és un prova.");
dExe.setClauDeute(null);
dExe.setClauObjecte("clauObjecte");
dExe.setDataTerminiFi(new Date());
dExe.setDataTerminiIni(new Date());
dExe.setDesEns("descripcioEns");
dExe.setDesExp("descripcióExp");
dExe.setDesTribEn("english");
dExe.setDesTribEs("spanish");
dExe.setDesTributCa("catalan");
dExe.setEscalaTrib("escalaTrib");
dExe.setIdEns(null);
dExe.setImportTotal(new Double(0.0));
dExe.setNifSubjecte("nifSubjecte");
dExe.setNomSubjecteRaoSocial("nomSubjecteRaoSocial");
dExe.setPeriodeDeute(EPeriodeDeute.EXECUTIVA);
dExe.setPisTrib("pisTrib");
dExe.setPortaTrib("portaTrib");
dExe.setRefCadastral("refCadastral");
dExe.setSgTrib("sgTrib");
dExe.setSituacioDeute(null);
dExe.setTipusDeute(ETipusDeute.HISTORIC);
dVol = new Deute();
dVol.setAdrecaCompletaCom("Això és un prova.");
dVol.setAdrecaCompletaTrib("Això és un prova.");
dVol.setCarrerTrib("Això és un prova.");
dVol.setCasaTrib("Això és un prova.");
dVol.setClauDeute(null);
dVol.setClauObjecte("clauObjecte");
dVol.setDataTerminiFi(new Date());
dVol.setDataTerminiIni(new Date());
dVol.setDesEns("descripcioEns");
dVol.setDesExp("descripcióExp");
dVol.setDesTribEn("english");
dVol.setDesTribEs("spanish");
dVol.setDesTributCa("catalan");
dVol.setEscalaTrib("escalaTrib");
dVol.setIdEns(null);
dVol.setImportTotal(new Double(0.0));
dVol.setNifSubjecte("nifSubjecte");
dVol.setNomSubjecteRaoSocial("nomSubjecteRaoSocial");
dVol.setPeriodeDeute(EPeriodeDeute.VOLUNTARIA);
dVol.setPisTrib("pisTrib");
dVol.setPortaTrib("portaTrib");
dVol.setRefCadastral("refCadastral");
dVol.setSgTrib("sgTrib");
dVol.setSituacioDeute(null);
dVol.setTipusDeute(ETipusDeute.HISTORIC);
//Carreguem exe
respostaDeutesExe.add(dExe);
//Carreguem vol
respostaDeutesVol.add(dVol);
}
//Carreguem tots
respostaDeutesTots.addAll(respostaDeutesExe);
respostaDeutesTots.addAll(respostaDeutesVol);
}
这是上下文代码:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mockito="http://www.mockito.org/spring/mockito"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.mockito.org/spring/mockito https://bitbucket.org/kubek2k/springockito/raw/tip/springockito/src/main/resources/spring/mockito.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
<context:annotation-config/>
<context:component-scan base-package="cat.base.gpt.ui" />
<!-- mock del serveis que podem atacar per solicitar info -->
<mockito:mock id="serveiSubjecte" class="cat.base.tip.service.ISubjectesService"/>
<mockito:mock id="serveiTip" class="cat.base.tip.service.ITipService"/>
<mockito:mock id="serveiGpt" class="cat.base.gpt.domini.service.IGptService"/>
<mockito:mock id="sessio" class="cat.base.baseframe.session.IBaseSession"/>
<mockito:mock id="usuari" class="cat.base.baseframe.user.IBaseUser"/>
<!--
<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
<property name="basename" value="classpath:cat/base/bfp/ui/applicationResources" />
</bean>
-->
<bean name="consultaDeutes" class="cat.base.gpt.ui.ConsultaDeutesTest"/>
<bean id="consultaDeutesHandler" class="cat.base.gpt.ui.handler.ConsultaDeutesHandler">
<property name="serveiSubjecte" ref="serveiSubjecte" />
<property name="gptServiceBO" ref="serveiGpt"/>
<property name="sessio" ref="sessio"/>
<property name="usuari" ref="usuari"/>
</bean>
</beans>