assertJ findFrame()失败,出现NoClassDefFoundError

时间:2018-07-12 05:54:50

标签: java gui-testing assertj

我正在尝试将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是我对{​​{1}}的呼叫。知道为什么会引发此异常吗?预先谢谢你。

1 个答案:

答案 0 :(得分:0)

我缺少assertj核心utils jar文件。必须从here下载assertj-core-3.10.0.jar文件,并在项目中引用它。