我做了一个小测试,在第二个测试中,我得到一个断言错误(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());
}
}
任何想法为什么会发生这种情况?
最佳答案
发生这种情况是因为菜单项实际上并没有添加到JMenu
本身,而是在内部添加到了弹出菜单,实际上菜单没有添加任何内容。
我认为您将要使用JMenu#getItemCount
,它“返回菜单上的项目数,包括分隔符”,或者最好是JMenu#getMenuComponentCount