要包含和测试 GUI 的类库

本文关键字:类库 GUI 测试 包含 | 更新日期: 2023-09-27 18:34:07

我想开始说这是家庭作业的一部分,但我不要求任何代码。我必须创建一个抽象基类,其中包含 2 个子类,包括一个虚拟方法和一个接口。我已经制作了我所有的类和界面,但我被困在创建一个类来测试 GUI。我已经引用了所有带有子类和接口的类库,但我的书在示例中有另一个名为 PresentationGUI.cs类。我已经在窗体之前创建了类,但不知道如何实现此类以"使用"窗体,我已将演示文稿类设置为启动项目,但无法弄清楚如何使其与Windows窗体设计器代码进行通信。在本书中,演示文稿类生成了 Windows 窗体代码以及对不同类命名空间的引用,在此表示类中,以及子类的一部分,但我迷失了如何实现这一点。书中的代码如下所示(我缩短了它以节省时间(:

01  using System;                //// I get an error if I type this in
02  using System.Drawing;
03  using System.Collections.Generic;
04  using System.ComponentModel; 
05  using System.Windows.Forms;
06  using System.Data;
07  using ClubNamespace;       //// to reference the subclasses
08  using IntermuralNamespace;
09   
10  namespace PresentationGUI 
11  {
12  public class PresentationGUI : System.Windows.Forms.Form
13  {
14  private Club aClub;
15  private Intermural aIntermural;
16  private System.Windows.Forms.GroupBox groupbox1;
17  private System.Windows.Forms.Label label1;
18  //// and other Windows.Forms object oriented buttons and so-forth
19   
20  public PresentationGUI ()
21  {
22  Initialize Component ();
23  }
24  /// #Windows Designer Code to add controls
25  static void Main()
26  {
27  Application.Run(new PresentationGUI());
28  }
29  private void Presentation_Load(object sender, System.EventArgs e)
30  {
31  aClub = new Club ("ACM", "Jones", "Davis 203", "Tuesday");
32  aIntermural = new Intermural ("Winners", "Joe Smith", "Gym 3", "VolleyBall")
33  }

我的导师说,通过创建 PresentationGUI 类并将其设置为启动,在向窗体添加控件之前,将创建私有的 Systems.Windows.Forms.Label label1; 到类本身,但是当我创建我的类时不会发生这种情况。在我将其设置为启动项目后,我什至将我的子类添加为对 PresentationGUI 类的引用,甚至是界面,我在上面的代码中省略了它(我使用了书中不使用接口的确切代码(。这是否与在顶部添加使用系统部件有关,还是我必须自己添加专用 Windows.Forms 部件来引用控件?或者是否有其他方法需要创建 PresentationGUI 类库?如何使用初始化组件((和Main((方法创建一个类?我是否需要以某种方式在表单设计中引用它,或者它是表单设计的一部分,如果是,我怎样才能使其成为表单设计的一部分?很抱歉所有的问题,我知道答案可能很简单,但是在我的书和网上很少有关于这一点的内容,而且我不知道我需要做什么来实现这一点。谢谢你的帮助!

要包含和测试 GUI 的类库

欢迎来到 StackOverflow,这是一个相当大的问题,通常它们需要分解,但我想我知道这本书是如何让你感到困惑的,我相信你会在再次发布之前阅读常见问题解答。

"如何使用 Initialize Component(( 和 Main(( 方法创建一个类?我是否需要以某种方式在表单设计中引用它,或者它是表单设计的一部分,如果是,我怎样才能使其成为表单设计的一部分?

表单也是类,它们只是派生自System.Windows.Form。听起来您只是在创建普通类(右键单击项目并选择> Windows 窗体而不是普通类添加新项(

> WinForms 创建新的项目>将 Form1 重命名为 PresentationGUI,在查看窗体设计器时,展开控件的工具箱,将 GroupBox 控件拖到窗体和标签控件上。

右键单击演示文稿 GUI 表单>查看代码。你会看到它在类构造函数中有这个方法:

InitializeComponent();

右键单击此方法名称并选择"转到定义"(或 F12(,您将在此处看到窗体设计器代码 - 该代码是通过将控件拖动到窗体图面上生成的。

右键单击程序.cs文件>查看代码>它将具有:

static void Main()
{
Application.Run(new PresentationGUI());
}

你拥有的那本书是把所有这些知识放在一起(而不是对设计器生成的代码使用分部类(。

最后,在您的 PresentationGUI 表单代码中,输入 Form_Load 事件:

private void PresentationGUI_Load(object sender, System.EventArgs e)
{
aClub = new Club ("ACM", "Jones", "Davis 203", "Tuesday");
aIntermural = new Intermural ("Winners", "Joe Smith", "Gym 3", "VolleyBall")
}

我更喜欢使用"属性"窗口向窗体和控件添加事件,例如:打开 PresentationGUI n 设计视图,按 F4,在属性窗口中您将看到一个闪电按钮,这显示了您可以添加到所选窗体或控件的所有事件。

关于将控件挂接到具有 2 个子类(包括虚拟方法和接口(的类,请使用 Binding。例如 a listBox1.DataSource = BusObjectTier.aClub;

关于问题的主要标题I am stuck in creating a class to test the GUI.

使用绑定,这样就不需要为 GUI 编写测试。测试控件绑定到的业务逻辑。