当前位置: 首页 > 面试题库 >

EasyMock和测试受保护的方法

方浩旷
2023-03-14
问题内容

试图使用EasyMock来测试是否调用了一个受保护的方法,不知道这是否是最好的方法……但是鉴于以下内容,我如何才能知道在调用callMe()时didIgetCalled()实际上是被调用了?

public Class testMe(){
    public int callMe(){
        if(true){
            didIgetCalled();
        }
        return 1;
    }
    protected int didIgetCalled(){
        return 2;
    }
}

问题答案:

这是一种无需使用EasyMock即可测试该方法的方法,但是我的建议是:如果它不是公开的,请不要为此编写测试

Method method = testMe.class.getDeclaredMethod("didIgetCalled", new Class[]{});
method.setAccessible(true);
testMe testClass = new testMe();
int invoke = (Integer) method.invoke(testClass);
assertEquals(2,invoke);

我知道这不会完全解决您的问题,但这只是一个开始 :)



 类似资料:
  • 问题内容: 我已经决定,在某些类中,我想拥有受保护的方法,但要对其进行测试。这些方法中的一些是静态的且简短的。因为大多数公共方法都使用了它们,所以以后我可能可以安全地删除测试。但是,为了从TDD方法入手并避免调试,我真的想对其进行测试。 我想到了以下几点: *建议的“ 方法对象”似乎对此过于矫kill过正。 * 从公共方法开始,当更高级别的测试提供了代码覆盖范围时,请将其置于保护状态并删除测试。

  • 问题内容: 如何在受保护的python类中定义一个方法,只有子类才能看到它? 这是我的代码: 我只希望看到的方法的子类。 问题答案: Python不像C ++ / Java / C#支持访问保护。一切都是公开的。座右铭是:“我们都是成年人。” 记录下您的课程,并坚持要求您的合作者阅读并遵守文档。 Python的文化是,以下划线开头的名称意味着:“除非您真正知道应该使用这些名称,否则请不要使用它们。

  • 问题内容: 关键字授予对相同包和子类(http://java.sun.com/docs/books/tutorial/java/javaOO/accesscontrol.html)中的类的访问权限。 现在,每个类都有一个超类(http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html)。 因此,我得出结论,即使每个类都可以访问的方法。

  • 面向对象编程最重要的原则之一 —— 将内部接口与外部接口分隔开来。 在开发比 “hello world” 应用程序更复杂的东西时,这是“必须”遵守的做法。 为了理解这一点,让我们脱离开发过程,把目光转向现实世界。 通常,我们使用的设备都非常复杂。但是,将内部接口与外部接口分隔开来可以让我们使用它们且没有任何问题。 一个现实生活中的例子 例如,一个咖啡机。从外面看很简单:一个按钮,一个显示器,几个洞

  • 在< code>/users下,我有一些需要身份验证令牌的路由,还有一些不需要。为了实现这一点,我做了以下工作。 然后我按照以下方式安装这些路线。 当我向< code>/users发送POST时,它运行预期的路径,但是当< code>next()被调用时,< code > protected _ middleware 运行。这是因为它在标有“D”的行中找到了下一个< code>/users定义。

  • 问题内容: 我有两节课。 类具有受保护的方法,是的实例。 Class 与class在同一包中。 我正在尝试访问,但正在获取… 怎么了? 问题答案: 编译器应该捕获这样的错误。当您显然在运行时得到此消息时,发生了一些奇怪的事情。可能您已更改了源代码,但已完全重新编译。 另一个潜在但晦涩的问题是通过不同的类加载器加载类。即使包名称相同,从不同的类加载器加载的类也将位于不同的包中(以与由不同的类加载器加