0

我可以使用 Mockito 测试在我的对象上调用方法是否调用了超级实现吗?我找不到办法做到这一点。基本上我想要这样的东西:

@RunWith(RobolectricTestRunnerWithInjection.class)
public class TestFragmentTest {
    @Spy private TestFragment testFragment;

    @Test
    public void onConfigurationChanged_shouldNotCallSuper() {
        doThrow(new RuntimeException("Should not call super!")).when(superOf(testFragment))
            .onConfigurationChanged(null);

        testFragment.onConfigurationChanged(null);
    }

    private static class TestFragment extends Fragment {
        @Override
        public void onConfigurationChanged(Configuration newConfig) {
            super.onConfigurationChanged(newConfig);
        }
    }
}

Mockito中当然没有superOf实用程序,但这表达了我正在寻找的行为。

4

1 回答 1

0

一种方法是在超类中放置一个特殊变量,该变量仅在您在子类中调用的构造函数中初始化。

这样,您可以添加一个函数来检查超类中的变量是否已更改。

于 2013-05-03T19:13:13.550 回答