7

画面にデータを表示したい新しいプロジェクトに取り組んでいます。私にとっては新しい TDD を使用することにしましたが、このアイデアが気に入っており、今のところうまくやっています。

JFrame をセットアップし、Textarea を追加してそこにテキストを配置しましたが、これを適切にテストするにはどうすればよいでしょうか? それとも、私の側の TDD コンテキストでのこの考え方は間違っているのでしょうか? (TDD の方法で) データが正しく表示されることを確認したい! 表示されるテキストの作成はテストで適切にカバーされていますが、表示はそうではありません。

以下は、完全に単純化された例です。

public class MyTextDisplay {
    public static void main(String[] args) {
        JFrame my_frame = new JFrame("DisplaySomeText");
        my_frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JTextArea textArea = new JTextArea(5, 20);
        textArea.setEditable(false);

        my_frame.add(textArea);
        my_frame.setVisible(true);

        //this would be in a separate method
        textArea.append("Hello World");
    }
}
4

1 に答える 1

5

TDD では、物事について少し違った考え方をする必要があります。ソリューションのコードを実際に記述する前に、最初に何をテストするのか、どのようにテストするのかを決定します。

GUI の場合、これは非常にトリッキーになる可能性があり、正直なところ、別のレイヤーにある可能性のあるロジックを GUI に含めるべきではありません。たとえば、表示される値は、GUI とは関係なく、個別にテストできるオブジェクトから取得する必要があります。これにより、メインのビジネス ロジック (モデルとコントローラー) を表示 (ビュー) とは別に開発できます。これが MVC パターンです。テスト駆動開発とは、単純に、コードを書く前に何ができるかをテストすることを意味し、コードを追加すると、より多くのテストがパスし始めます。

私は自分のデザインに集中し、テキスト値を生成しているものは何でも期待どおりに機能することを確認したいと思います。GUI は「馬鹿げた」もので、表示された値が実際に正しいかどうかはほとんど気にせず、値の表示または取得だけに集中する必要があります。

GUI は自動化されたツールでテストする (適切にテストする) のが難しいことで知られているので、私はそれをできるだけ避けて、GUI を実際のアプリケーションからできる限り切り離します。次に、GUI を一度テストして、想定どおりに表示されることを確認し、そのコードに触れていないため、GUI で継続的なテストを行うことなくビジネス ロジックに集中できます。

于 2012-05-18T06:19:31.997 に答える