4

AssertJ を使用して単一のコンポーネントまたは JComponent をテストする方法の例はありますか?

入門ガイドには、メイン クラスを使用してアプリケーション全体をテストするための奇妙な例が​​示されていますが、これは十分に細分化されていません。最初にカスタム コンポーネントをテストする予定です。

アップデート

次のコンポーネントがあるとします。

package tests;

import javax.swing.*;
import java.awt.*;

public class JCustomPanel extends JPanel {
    @Override
    public void paint(Graphics g) {
        super.paint(g);
        g.setColor(Color.RED);
        g.fillRect(0, 0, getWidth(), getHeight());
    }
}

赤く見えるかどうかを確認したいと思います。何を書く?

package tests;

import org.assertj.swing.edt.FailOnThreadViolationRepaintManager;
import org.assertj.swing.fixture.JPanelFixture;
import org.assertj.swing.testing.AssertJSwingTestCaseTemplate;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;

public class Test01 extends AssertJSwingTestCaseTemplate {

    private JPanelFixture panel;

    @BeforeClass
    public static void setUpOnce() {
        FailOnThreadViolationRepaintManager.install();
    }

    @Before
    public void setUp() {
        panel = new JPanelFixture(robot(), new JCustomPanel());
    }

    @Test
    public void testColorIsRed() {
        //what to write here?
    }
}
4

2 に答える 2

2

AssertJ Swing ユーザーはごくわずかしかいない可能性があるため、特定の質問に対する迅速な回答を受け取ることができるメーリング リストがあることに注意してください。

それほど大きくはありませんが、新しいユーザーが AssertJ Swing を使用する方法についての良いリファレンスになるはずのサンプル プロジェクトがあります。

残念ながら、テストしようとしている「アプリケーション」は 1 つです。AssertJ Swing はそれを目指していません。色が含まれているように見えるだけなので、多くのオプションはありません。AssertJ Swing は、正確なピクセル テスト ツールではなく、機能テスト ツールを目的としています。したがって、実際にはピクセル テストを行うための十分なサポートがありません。

色については、JPanelFixture提供foreground()し、background()次のようなことを行います。

panel.background().requireEqualTo(Color.RED);

しかし、前述のように、これはライブラリの主な目的ではありません。

于 2015-07-23T17:08:08.420 に答える