我正在尝试将assertJ-swing集成到没有Maven的NetBeans项目中。因此,我从http://repo1.maven.org/maven2/org/assertj/assertj-swing/3.8.0/下载assertj-swing-3.8.0.jar并将其作为库添加到NetBeans。
在测试main()中,我使用以下命令执行应用程序:
org.assertj.swing.launcher.ApplicationLauncher.application(STInt_Client.class).start();
并且应用程序正确启动。该应用程序将弹出2个JDialog框,并在两个框上均按OK后,将创建一个新的JFrame并在其上调用
setVisible(true)
。在我的测试中,我想以编程方式找到该框架,所以我这样做:
FrameFixture chooseModeFrame = findFrame("Frame_ChooseMode").withTimeout(10000).using(robot());
Frame_ChooseMode是JFrame类的名称。但是这一行抛出一个异常:
Exception in thread "main" java.lang.NoClassDefFoundError: org/assertj/core/util/Preconditions
at org.assertj.swing.core.NameMatcher.<init>(NameMatcher.java:83)
at org.assertj.swing.finder.ComponentFinderTemplate.<init>(ComponentFinderTemplate.java:57)
at org.assertj.swing.finder.WindowFinderTemplate.<init>(WindowFinderTemplate.java:42)
at org.assertj.swing.finder.FrameFinder.<init>(FrameFinder.java:40)
at org.assertj.swing.finder.WindowFinder.findFrame(WindowFinder.java:85)
at com.stinternational.client.test.Test_GUI.main(Test_GUI.java:107)
Test_GUID.java:107是我对
findFrame()
的呼叫。知道为什么会引发此异常吗?先感谢您。 最佳答案
我缺少了assertj核心utils jar文件。必须从here下载assertj-core-3.10.0.jar文件,并在项目中引用它。