gpt4 book ai didi

java - 如何对 JFrame 进行 TDD?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:28:26 25 4
gpt4 key购买 nike

我正在处理一个新项目,我想在屏幕上显示一些数据。我开始使用 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");
}
}

最佳答案

TDD 要求您以不同的方式思考问题。在实际为解决方案编写任何代码之前,您首先要确定要测试的内容以及测试方式。

对于 GUI,这可能会变得非常棘手,老实说,您的 GUI 永远不应包含任何可能位于单独层中的逻辑。例如,显示的值应该来自与 GUI 无关但可以单独测试的对象。这允许您开发与显示( View )分开的主要业务逻辑(模型和 Controller )。这就是 MVC 模式。测试驱动开发只是意味着您在编写代码之前测试您能做的事情,并且随着您添加更多代码,更多测试将开始通过。

我宁愿专注于我的设计,并确保生成文本值的任何内容都按预期工作。 GUI 应该是“哑巴”的,只专注于显示或检索值,很少关心显示的值是否确实正确。

众所周知,GUI 很难使用自动化工具进行测试(正确测试),因此我会尽可能避免这种情况,并尽可能将我的 GUI 与我的实际应用程序分离。然后您可以测试 GUI 一次,以确保它显示它应该显示的内容,并专注于业务逻辑,而不必在 GUI 上进行连续测试,因为您没有接触该代码。

关于java - 如何对 JFrame 进行 TDD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10647603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com