我正在尝试将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文件,并在项目中引用它。

10-08 02:41