模拟 jenkins.model.Job 的 getLastSuccessfulBuild 结果 No signature of method is applicable for argument types
Mocking jenkins.model.Job's getLastSuccessfulBuild results in No signature of method is applicable for argument types
当 RunT 对象似乎没有从 jar 中导出时,您如何使用 PowerMockito 模拟 Jenkins Job 的方法 return a RunT 对象。
在尝试模拟 getLastUnstableBuild 时,我 运行 遇到了麻烦,因为它 return 是一个 RunT,我不确定如何模拟它,因为我无法访问 RunT
。
我试过使用一个 mock 运行,一个 Build 的 mock,但似乎没有任何效果。
@RunWith(PowerMockRunner.class)
@PrepareForTest([Jenkins.class, Job.class, Run.class, Build.class, UserIdCause.class, BuildServerGlobals.class])
class BuildServerJobManagerTest {
def thisScript
def expectedJob = 'job'
def expecteBuildNumber = '1'
def expectedUser = 'user'
@Mock
private Jenkins jenkins
@Mock
private Job job
@Mock
private Run run
@Mock
private Build build
...
PowerMockito.when(jenkins.getItemByFullName(expectedJob)).thenReturn(job)
PowerMockito.when(run.getLastUnstableBuild()).thenReturn(run) //fails
PowerMockito.when(run.getLastUnstableBuild()).thenReturn(build) //fails
失败
groovy.lang.MissingMethodException:
No signature of method: hudson.model.Run$$EnhancerByMockitoWithCGLIB$$d8adb2d7
.getLastUnstableBuild() is applicable for argument types: () values: []
通用 运行T 不是问题所在。所讨论的方法是 Job class 方法而不是 运行 class 方法的事实是问题所在
PowerMockito.when(job.getLastUnstableBuild()).thenReturn(...)
当 RunT 对象似乎没有从 jar 中导出时,您如何使用 PowerMockito 模拟 Jenkins Job 的方法 return a RunT 对象。
在尝试模拟 getLastUnstableBuild 时,我 运行 遇到了麻烦,因为它 return 是一个 RunT,我不确定如何模拟它,因为我无法访问 RunT
。
我试过使用一个 mock 运行,一个 Build 的 mock,但似乎没有任何效果。
@RunWith(PowerMockRunner.class)
@PrepareForTest([Jenkins.class, Job.class, Run.class, Build.class, UserIdCause.class, BuildServerGlobals.class])
class BuildServerJobManagerTest {
def thisScript
def expectedJob = 'job'
def expecteBuildNumber = '1'
def expectedUser = 'user'
@Mock
private Jenkins jenkins
@Mock
private Job job
@Mock
private Run run
@Mock
private Build build
...
PowerMockito.when(jenkins.getItemByFullName(expectedJob)).thenReturn(job)
PowerMockito.when(run.getLastUnstableBuild()).thenReturn(run) //fails
PowerMockito.when(run.getLastUnstableBuild()).thenReturn(build) //fails
失败
groovy.lang.MissingMethodException:
No signature of method: hudson.model.Run$$EnhancerByMockitoWithCGLIB$$d8adb2d7
.getLastUnstableBuild() is applicable for argument types: () values: []
通用 运行T 不是问题所在。所讨论的方法是 Job class 方法而不是 运行 class 方法的事实是问题所在
PowerMockito.when(job.getLastUnstableBuild()).thenReturn(...)