Обычный шаблон: вы создаете новый макет для каждого тестового случая.
Например, с JUnit и Mockito это может выглядеть так:
@RunWith(MockitoJUnitRunner.class)
public class FooTest {
@Mock
Bar mockedBar;
...
Это создаст новый макет для каждого из ваших методов @Test. Когда вы следуете этой практике, вам не нужно беспокоиться о вызовах «перекрестного теста». Потому что каждый тест использует свои «собственные» макеты.
Или наоборот: избегайте повторного использования одинаковых макетов объектов для нескольких тестов.
И чтобы прояснить это: фиктивные объекты не знают об этом "контексте метода тестирования". Они создаются в какой-то момент, и затем происходят вызовы методов. Насмешке все равно или неизвестно, «откуда» эти звонки.