Как вы справляетесь с использованием PowerMockito для макетирования методов Jenkins Job, которые возвращают объект RunT , когда кажется, что этот объект не был экспортирован из банки.
При попытке выполнить макетgetLastUnstableBuild У меня возникают проблемы, так как он возвращает RunT, и я не уверен, как имитировать это, так как я не могу получить доступ к RunT
.
Я пытался использовать пробный запуск, макет Build икажется, ничего не работает.
@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: []