我做了一个小测试,在第二次测试中我得到一个断言错误(0而不是1):
package tests;
import static org.junit.Assert.*;
import org.junit.Test;
import javax.swing.*;
public class MenuTest {
@Test
public void testElementsAddition() {
JMenuItem mItem1 = new JMenuItem();
JMenuItem mItem2 = new JMenuItem();
JMenu menu = new JMenu();
mItem1.add(mItem2);
assertEquals(1, mItem1.getComponentCount());
menu.add(mItem1);
assertEquals(1, menu.getComponentCount());
}
}
任何想法为什么会发生这种情况?
答案 0 :(得分:3)
这是因为菜单项实际上并未添加到JMenu
本身,而是在内部添加到弹出菜单中,实际上没有任何内容添加到菜单中。
我想你会想要使用JMenu#getItemCount
,其中"返回菜单上的项目数,包括分隔符" ,或者最好是{{3} }