كيف أجعل إحدى طرق كعب الروتين تستدعي الطريقة الحقيقية في ASMock؟

StackOverflow https://stackoverflow.com/questions/8966238

  •  12-11-2019
  •  | 
  •  

سؤال

في المرن أريد أن أفعل شيئًا مشابهًا لما يلي

var audioPlayerMock:AudioPlayer = AudioPlayer(mockRepository.createStub(mockRepository.createStub(AudioPlayer));
SetupResult.forCall(audioPlayerMock.play).(CALL_ACTUAL_PLAY_METHOD(WITH_ARGUMENT));

يحتوي برنامج AudioPlayer على الكثير من الطرق التي أرغب في إيقافها (لذلك أستخدم mockRepository.creatStub()).ولكن هناك طريقة واحدة وهي play(), ، أريد استدعاء الطريقة الفعلية (super.play(argument) إذا كان تفكيري صحيحا).لست متأكدا من كيفية القيام بذلك؟

أعلم أنه يمكنني استخدامها createDynamic(AudioPlayer) ثم استبعد كل الطرق الأخرى، لكن هذا ممل بعض الشيء.

هتافات

هل كانت مفيدة؟

المحلول

يمكنك استخدام IMethodOptions.callOriginalMethod() لاستدعاء التنفيذ الفعلي على فئة متوقفة:

SetupResult.forCall(authatoPlayerMock.play(null))
    .ignoreArguments()
    .callOriginalMethod();
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top