【问题标题】:LibGDX Java JUnit TestingLibGDX Java JUnit 测试
【发布时间】:2015-07-23 14:37:23
【问题描述】:

我正在使用 libGDX Java 游戏库制作安卓游戏。我想测试我的代码,但不太确定如何去做。我已经设置了测试并运行了示例测试。

public class UnitTestExample {

    @Test
    public void oneEqualsOne() {
      assertEquals(1, 1);
    }
}

现在我该如何测试类似的函数

public void addListenerToExitButton(){

    buttonExit.addListener(new ClickListener() {
        @Override
        public void clicked(InputEvent event, float x, float y) {Gdx.app.exit();
        }
    });

}

这个函数将一个LibGDX事件添加到一个名为buttonExit的按钮上(在这种情况下,事件是退出游戏。)

【问题讨论】:

    标签: java android junit libgdx


    【解决方案1】:

    我使用JMockIt 对我的 LibGdx 项目进行单元测试,它就像一个魅力。

    对于您的情况,我假设您要测试的方法在屏幕类中,换句话说,就是您正在测试的类。因此,您需要模拟此类的所有依赖项,然后对其进行实例化。我再次假设按钮实例将是该类的私有成员。因此,在正常情况下,您无法从测试代码中访问它。 JMockit 可以帮助您:

    TextButton buttonToTest = (TextButton) Deencapsulation.getField(yourScreenUnderTest, "yourButtonName");
    buttonToTest.toggle();
    

    以上代码将获取按钮并在其上模拟 click 事件。在这种情况下, Gdx.app 是一个依赖项,您已经模拟了它。这意味着,当您的按钮被单击时,您的模拟实例将期望并在没有任何参数的情况下调用 exit。因此,如果您将此添加到您的期望中,那么您就完成了。

    简洁优雅=]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多