gpt4 book ai didi

java - 如何为具有 topComponents 成员变量的类编写 junit 测试?

转载 作者:太空宇宙 更新时间:2023-11-04 07:32:08 27 4
gpt4 key购买 nike

public class Something {

private static Something something = new Something();

public static Something get(){
return something;
}

private EventQueueWindow eventQueue;

private Something(){
TopComponent tc = WindowManager.getDefault().findTopComponent("EventQueueWindow");
eventQueue = (EventQueueWindow) tc;
}

EventQueue getQueue(){
return eventQueue;
}

}//end class Something

现在我想编写一个 JUnit 测试,它需要能够访问 eventQueue。

public void testgetQueue() {
Something something = Something.get();
assertEquals("Failed to return EventQueueWindow",something.getQueue().getClass(), EventQueueWindow.class);
}

当我运行测试时,我得到一个 java.lang.NullPointerException ,因为 eventQueue 有一个 null 值,尽管它在类 Something's 构造函数中被分配了一个值。我读到这可能与在不同线程中处理组件或在测试运行之前未初始化组件有关。但我对 java 和单元测试很陌生,不知道如何解决这个问题。任何指导将不胜感激。

最佳答案

你最大的问题是你有全局状态。全局状态通常是糟糕的编程,包括测试。

测试特定的实现类,可能不是一个很好的测试。

我建议从库中删除全局状态以及对全局状态的依赖,然后进行测试。

关于java - 如何为具有 topComponents 成员变量的类编写 junit 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17531234/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com