java获取私有匿名内部类_java – 如何测试调用私有方法的匿名内部类

  • Post author:
  • Post category:java


我们有一堆类从服务器侦听事件然后响应它们.例如:

class EventManager {

private Set cache = new HashSet();

private EventListener eventListener = new EventListener() {

void onEvent(Event e) {

if (e instanceof MyEvent || e instanceof YourEvent) {

handleEvent(e);

}

}

}

public EventManager(ServerCommunication serverComm) {

serverComm.addListener(eventListener);

}

private handleEvent(Event e) {

// handle the event…

// …

cache.add(cache);

// …

}

}

这是我们正在做的事情的一个组成例子.以下是我看到的问题:

>我想测试handleEvent以确保它正在做它应该做的事情,但我不能,因为它是私有的.

>我也想检查一下是否有东西被添加到缓存中,但这似乎也很困难,因为缓存是私有成员,我不想添加一个不必要的getter方法.

>我还想测试匿名类的onEvent方法中的代码.

现在,我所做的是将所有逻辑从匿名类移到handleEvent方法,并使handleEvent包为private(我的单元测试在同一个包中).我不是在检查缓存的内容,尽管我想.

有没有人对更可测试的更好的设计有任何建议?



版权声明:本文为weixin_29424569原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。