우리는 단계로 구성된 일종의 테스트 워크 플로를 가지고 있습니다. 이제이를 나타 내기위한 클래스를 만들고 싶습니다.데이터 흐름을위한 디자인 패턴
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; }
}
가 지금은, 1 단계에서 제어를 얻을 수 2 단계에 등을 사용하려는 : 난 그냥 다음 코드가 순간
.
또는 특수한 TestStep 파생 클래스의 멤버가 필요로하는 반환 값을 가진 다른 StepFunc를 가지고있는 생각. 하지만 아마도 일 것입니다.
참고 : 지금은 한 번에 할 수 없습니다.
모든 아이디어를 높이 평가합니다!
단계 X가 단계 Y * 및 * 단계 Z의 결과를 필요로 할 수 있습니까? 예를 들어, 단계 X는 사용자 이름에 대한 제어와 암호에 대한 제어가 모두 필요합니다. –
물론 이것은 필요할 수 있습니다. 그것에 대해 더 쉽게 이야기 할 수 있도록 간단한 예제를 제공했습니다. –
매개 변수의 출처를 누가 알아야합니까? X 단계는 1 단계와 3 단계의 결과가 필요하다는 것을 알고 있어야하며 2와 4가 아니라 컨트롤러가이를 알고 있어야합니까? 나는 당신이 어떻게 든 "힘들다"- 코드해야한다고 생각합니다. 모든 매개 변수에 대해 올바른 단계를 자동으로 도출 할 수는 없습니다. –