كيف أجعل إحدى طرق كعب الروتين تستدعي الطريقة الحقيقية في ASMock؟
-
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();
لا تنتمي إلى StackOverflow