Java 如何在删除时使用mockito创建JUnit
我需要你们的帮助 我想对这段代码进行测试:Java 如何在删除时使用mockito创建JUnit,java,intellij-idea,junit,mockito,powermock,Java,Intellij Idea,Junit,Mockito,Powermock,我需要你们的帮助 我想对这段代码进行测试: //Delete - Patient void deletePatient(long id) throws PatientNotFoundException { long deletedRecord = clientWrapperWrite.deleteSingle(PATIENT_COLLECTION_NAME, id); if (deletedRecord == 0) { throw new PatientNotFo
//Delete - Patient
void deletePatient(long id) throws PatientNotFoundException {
long deletedRecord = clientWrapperWrite.deleteSingle(PATIENT_COLLECTION_NAME, id);
if (deletedRecord == 0) {
throw new PatientNotFoundException(id);
}
}
这就是我为考试做的
//Delete Patient TestUnit - OnProgress (SOS)
@Test
public void deletingEmptyPatient() throws PatientNotFoundException, IOException {
MongoClientWrapper mockClientWrapperWrite = mock(MongoClientWrapper.class);
MongoClientWrapper mockClientWrapperRead = mock(MongoClientWrapper.class);
when(mockClientWrapperRead.getSingle("patient",10001L)).thenReturn(createSinglePatient().toJson());
Patient dummyPatient = createSinglePatient();
myPatientFacade = MyPatientFacadeBuilder.create("conf/mypatient-server-test.properties")
.withMongoClientWrapperRead(mockClientWrapperRead)
.withMongoClientWrapperWrite(mockClientWrapperWrite)
.build();
myPatientFacade.addSinglePatient(dummyPatient);
myPatientFacade.deletePatient(10001L);
thrownException.expect(PatientVisitNotFoundException.class);
thrownException.expectMessage("Patient ID '10001' cannot be found.");
verify(mockClientWrapperWrite,times(1))
.deleteSingle("patient",10001L);
}
我还在学习如何使用JUnit和mockito。请引导我。
谢谢你过来,祝你今天愉快
============================================================================
更新:
因此,错误是说com.at.mypatient.cosmed.exceptions.PatientNotFoundException:找不到患者ID“10001”。
我想做的是,制作患者模拟器的单元然后运行删除并验证删除。请使用H2或HSQL并准备单独的存储库层测试用例,而不是来自控制器层 遵循步骤
- 插入一条记录
- 选择记录(大小应大于1)
- 删除各自的记录
- 选择记录并验证(大小为零或空异常)
很高兴进一步提供帮助您似乎忘记添加调试器告诉您的内容了?如果您有stacktrace,您可能需要添加它。另一方面,我必须同意
@SwaritAgarwal
,你最好为这个问题编写集成测试。请避免在你的问题中添加文本图像。而是直接复制粘贴堆栈跟踪。这就是说:您还没有在mock上定义任何行为,因此clientWrapperWrite.deletesSingle
将返回0,这将触发您的异常。行为与您期望的有什么不同?请附加包含测试输出的文本,并说出您期望的内容。看起来您在错误的模拟上定义了行为,请改用mockClientWrapperWrite
。还要确保您的Dummy患者具有id10001L
。