当前位置: 首页 > 知识库问答 >
问题:

从Cucumber使用AssertJ Swing测试

葛承德
2023-03-14

我有一个简单的单元测试来确保应用程序的主窗口被解除:

public class MainWindowUT extends AbstractMainWindowTest {

    @Test
    public void whenApplicationIsStarted_thenMainFrameIsUndecorated() {
        @SuppressWarnings("boxing")
        Boolean isUndecorated = GuiActionRunner.execute(() -> window.target().isUndecorated());
        assertThat(isUndecorated).isTrue();
    }
}

AbstractMainWindowTest是:

public abstract class AbstractMainWindowTest extends AssertJSwingJUnitTestCase {

    protected FrameFixture window;

    @Override
    protected void onSetUp() {
        ScaleRuler frame = GuiActionRunner.execute(() -> new ScaleRuler());
        window = new FrameFixture(robot(), frame);
        window.show();
    }
}

ScaleRuler是我的框架,它暂时什么也不做,只是setundered(真)。测试运行良好。如何从Cucumber中执行相同的测试?

java prettyprint-override">public final class WindowAspectSteps {

    @Then("the main window should be undecorated")
    public void checkMainWindowIsUndecorated() {
        //????
    }
}

我尝试使用WindowAspectSteps来扩展AbstractMainWindowTest,但是窗口变量仍然为null。

共有1个答案

严峰
2023-03-14

JUnit的@before注释(@org.JUnit.before)不适用于Cucumber。
Cucumber有自己的@before注释(@Cucumber.api.java.before):

事实上,JUnit和Cucumber实际上是两个不同的测试运行器平台,因此有它们自己的测试运行器和相关的设施(虽然有些在逻辑方面是通用的)。

作为一种解决办法,尝试在测试抽象类的设置方法上添加两个不同的@before注释(JUnit和Cucumber的),或者创建两个不同的方法:一个使用@cucumber.api.java.before,另一个使用@org.junit.before,这两个方法都委托给执行设置处理的公共方法。

 类似资料:
  • 我正在尝试运行一个使用Mockito的JUnit cucumber测试。这是我遇到的问题。在我的cucumber赛跑课上,我有 在我的常规JUnit测试中 鉴于我一次只能有一个@RunWith,我如何将Mockito与cucumber结合使用呢?

  • Javav8. x-Springv5. xcucumberv4.2.0 我尝试了temyers/cucumber jvm并行插件,效果很好,但当我进入他们的gitihub页面时,他们宣布停止使用该插件b/c cucumber已经开始支持cucumber jvm 4.0的并行测试运行支持。0 我有使用以下maven依赖项的现有测试。 我有两个问题让我困惑。 为了使用cucumber-jvm,我必须更

  • 我似乎有一些问题与耙子和我的cucumber特征文件。 这是詹金斯的命令。它指定了我直接放在。/features目录,所以testjson.feature就在那里。 Rakefile看起来像这样: 这非常简单,但在 Jenkins 的控制台输出中,我得到: 这告诉我它没有找到功能文件,对吗? 当我转到功能文件上方的目录并运行Cucumber时,测试就可以了! 所以,很明显我的Rake文件出错了。有

  • 我在{project_home}/src/test/groovy/中有一些功能测试 我希望能够使用一个gradle任务: 但是编译失败: 我确实在/build/libs下面有jar文件

  • 我想使用Cucumber与SoapUI和Selenium链接,以创建一个自动化功能测试。我只找到了一个关于它的网站,描述了首先我必须创建一个SoapUI项目并将其保存为一个。xml文件。然后,我应该使用Cucumber和Selenium将该文件包含到测试项目中。 我的第一个问题是我需要做什么配置?(在任何配置中使用xml.pom文件时) 我的第二个也是最后一个问题是:如果我每晚都和Jenkins一