JUnit 的方法计数将compareTo 方法计数两次。为什么?
我正在开发一个 Java Springframework 项目并使用 JUnit4 来测试它。
我的类实现了 Comparable 并重写了 CompareTo 方法。
在我的测试中,当我执行
@Test
Class<myClass> m = myClass.class;
Method[] methods = m.getDeclaredMethods();
assertEquals(5, methods.length);
此测试时,即使 myClass 中恰好有 5 个方法也会失败。当我查看 Eclipse 调试器时,我发现compareTo 方法被调用了两次。
我找不到这种行为的解释。为什么会出现这种情况?
I am working on a Java Springframework project and using JUnit4 to test it.
My class implements Comparable and overrides the compareTo method.
In my test, when I do
@Test
Class<myClass> m = myClass.class;
Method[] methods = m.getDeclaredMethods();
assertEquals(5, methods.length);
This test fails even though there are exactly 5 methods in myClass. When I looked in the Eclipse debugger, I see that the compareTo method gets called twice.
I can't find an explanation for this behavior. Why does this happen?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
编译器为
compareTo()
生成一个桥接方法该机制解释得很好 Angelika Langer 的泛型常见问题解答:什么是桥接方法?:
The compiler generates a bridge method for
compareTo()
The mechanism is explained very well in Angelika Langer's Generics FAQ: What is a bridge method?: