Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jooq()中的Mocking Record.insert()_Java_Unit Testing_Jooq - Fatal编程技术网

Java jooq()中的Mocking Record.insert()

Java jooq()中的Mocking Record.insert(),java,unit-testing,jooq,Java,Unit Testing,Jooq,我有一个控制器端点,看起来像这样 @POST public JobComponentGetResponse createJobComponent( @PathParam("jobId") Integer jobId, @Valid JobComponentPostRequest request ) { JobComponentRecord newJobComponent = dao.jobComponent.newRecord(); newJobComponen

我有一个控制器端点,看起来像这样

@POST
public JobComponentGetResponse createJobComponent(
    @PathParam("jobId") Integer jobId,
    @Valid JobComponentPostRequest request
) {
    JobComponentRecord newJobComponent = dao.jobComponent.newRecord();

    newJobComponent.setJobId(jobId);
    newJobComponent.setLabel(request.label);
    newJobComponent.setSqft(request.sqFt);

    newJobComponent.insert();

    return new JobComponentGetResponse(newJobComponent);
}
以及相应的单元测试

@Test
public void createJobComponent_createsAndReturnsTheDesiredRecord() {
    JobComponentPostRequest request = new JobComponentPostRequest();
    JobComponentRecord jobComponent = spy(new JobComponentRecord());
    when(dao.jobComponent.newRecord()).thenReturn(jobComponent);

    when(jobComponent.insert()).thenReturn(null);

    JobComponentGetResponse response = jobComponentController.createJobComponent(jobId, request);

    assertThat(response, samePropertyValuesAs(request));
}
我正在尝试测试控制器的响应,但当控制器调用
newJobComponent.insert()


我尝试过在(jobComponent.insert())时执行
,然后返回(null)也不起作用。

我怀疑您的dao.jobComponent.newRecord()即使返回空值:
当(dao.jobComponent.newRecord())。然后返回(jobComponent)

什么是dao.jobComponent,它来自哪里


EDIT:我对您的代码没有全面的了解,但JobComponentRecord的getter是个好主意,您可以使用mockito轻松确定他的返回值。

奇怪的是,
newJobComponent
不是空的,它的类型是
JobComponentRecord.mockito.Mock
,所有的setter都工作正常。只有在运行
insert
时,才会抛出空指针。