数据流的设计模式

时间:2013-01-11 13:31:15

标签: c# design-patterns selenium automation workflow

我们有一些由步骤组成的测试工作流程。 现在我想构建表示它的类。

e.g。

Step 1: Get edit control for username
Step 2: Write username into the control
Step 3: Get edit control for password
Step 4: Write password into the control
Step 5: Click Login Button

问题是:我如何才能轻松交换信息? 如何在步骤2的代码中轻松使用步骤1的编辑控件?

目前我只有以下代码:

public abstract class TestCase
{
    // the Steps to build the test
    public IList<TestStep> TestSteps { get; set; }

    public TestCase()
    {
        this.TestSteps = new List<TestStep>();
    }

    public abstract void Run();

    public override string ToString()
    {
        return this.GetType().Name;
    }
}

public class TestStep
{
    public int StepNumber { get; set; } 
    public Func<bool> StepFunc { get; set; }
}

现在我想在Step1中获取Control,在Step2中使用它,依此类推。

考虑使用具有适合需求的返回值的不同StepFunc 或者是专门的TestStep派生类中的成员。但可能有一个 更好的方式。

请注意:目前我无法一步到位。

任何想法都非常感谢!

1 个答案:

答案 0 :(得分:-1)

介绍stepcontroller保存执行步骤并控制步骤的执行,当它执行步骤2时,它将步骤1的结果传递给步骤2.步骤2不应该访问步骤1的编辑控件而是对步骤1的结果进行访问,步骤1是输入步骤1的编辑控件的文本。 当然,步骤的结果也可以累积,以便步骤4的结果包含用户名和密码。