Оказывается, я был слишком обдумал это, и yields
метод был решением:
test 'status is done' do
response = {
'type' => 'trackable_jobs',
'id' => '0b6ffad9177aeb594ad54af0',
'status' => 'done',
'errors' => nil
}
BaseApi.expects(:authenticate).with(1).yields
BaseApi::TrackableJob.stubs(:find).returns([response])
assert_equal(true, BaseApis::PollTrackableJobWorker.new.perform('xxx', 123))
end