diff options
author | Felipe Leme <felipeal@google.com> | 2023-12-06 15:15:51 -0800 |
---|---|---|
committer | Felipe Leme <felipeal@google.com> | 2023-12-06 23:20:34 +0000 |
commit | 164d79605ef6f5bda643a9bd9692c037c9b041fe (patch) | |
tree | 79314a771a745283566abd90d68c4668bf7e5b76 /java/com | |
parent | f451d48649cc8ce740f270107f72931992fbedc5 (diff) | |
download | modules-utils-164d79605ef6f5bda643a9bd9692c037c9b041fe.tar.gz |
Added AbstractExtendedMockito.getClearInlineMethodsAtTheEnd().
Test: atest ModulesUtilsTestingTests:ExtendedMockitoRuleTest
Bug: 315196012
Change-Id: I8583fc74d1350511e00222164a42a2be0f4c4266
Diffstat (limited to 'java/com')
-rw-r--r-- | java/com/android/modules/utils/testing/AbstractExtendedMockitoRule.java | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/java/com/android/modules/utils/testing/AbstractExtendedMockitoRule.java b/java/com/android/modules/utils/testing/AbstractExtendedMockitoRule.java index 594551c..1bb8364 100644 --- a/java/com/android/modules/utils/testing/AbstractExtendedMockitoRule.java +++ b/java/com/android/modules/utils/testing/AbstractExtendedMockitoRule.java @@ -133,8 +133,16 @@ public abstract class AbstractExtendedMockitoRule<R extends AbstractExtendedMock return Collections.unmodifiableSet(staticClasses); } - - + /** + * Gets whether the rule should clear the inline mocks after the given test. + * + * <p>By default, it returns {@code} (unless the rule was built with + * {@link AbstractBuilder#dontClearInlineMocks()}, but subclasses can override to change the + * behavior (for example, to decide based on custom annotations). + */ + protected boolean getClearInlineMethodsAtTheEnd(Description description) { + return mClearInlineMocks; + } @Override public Statement apply(Statement base, Description description) { @@ -247,12 +255,13 @@ public abstract class AbstractExtendedMockitoRule<R extends AbstractExtendedMock } } } finally { - clearInlineMocks(); + clearInlineMocks(description); } } - private void clearInlineMocks() { - if (!mClearInlineMocks) { + private void clearInlineMocks(Description description) { + boolean clearIt = getClearInlineMethodsAtTheEnd(description); + if (!clearIt) { Log.d(TAG, "NOT calling clearInlineMocks() as set on builder"); return; } |