仕様フローを使用してサービス インターフェイスをテストしたいと考えています。
このサービスは、他のサービスをテストするためにテストを実行するように設計されています。私がやりたかったことは、いくつかの要求メッセージを送信し、応答を返して検証することです。
以下のサービス契約を使用してテストしたいこのデータがあるとしましょう。.
var testData = new TestData
{ Definition = new TestDefinition
{
Steps = new List<TestStep>(){ new TestStep{StepId = "1", Actions = new List<TestAction>()
{new TestAction{ActionType = TestActionType.SendRequest, Parameters = new Dictionary<string, string>(){{"MessageId", "1"}}},
}
} ,
new TestStep{StepId="2",Actions=new List<TestAction>
{new TestAction
{ActionType=TestActionType.GetResponse,
Parameters=new Dictionary<string, string>()
{{"MessageId","2"},{"Wait","30000"}} }}}}
},
Requests = new List<Request>()
{new Request(){
MessageId = "1",
Content = new List<Element>()
{ new Element{Key= "TransactionID.Value", Value = "XX0001"},}}},
Response = new List<Response>{new Response
{MessageId="2", ElementValidations = new List<ValidationRule>
{new ValidationRule
{Element=new Element{ Key = "TransactionID.Value",,
Value="XXX0006"},Description="Failed to match [Transaction ID] value",}}}
DataContract は次のとおりです。
[DataContract]
public class TestData
{
[DataMember]
public TestDefinition Definition { get; set; }
[DataMember]
public List<Request> Requests { get; set; }
[DataMember]
public List<ExpectedResponse> Response { get; set; }
}
[DataContract]
public class TestDefinition
{
[DataMember]
public string TestId { get; set; }
[DataMember]
public List<TestStep> Steps { get; set; }
}
[DataContract]
public class Request
{
[DataMember]
public string TransactionId { get; set; }
[DataMember]
public string TransactionType { get; set; }
[DataMember]
public List<Element> Content { get; set; }
}
[DataContract]
public class TestStep
{
public TestStep()
{
Timeout = 60000;
}
[DataMember]
public ICollection<TestAction> Actions { get; set; }
}
Scenario、Given、When、Then という特定のキーワードを使用した仕様フローの使用。シナリオとして設定できるもの、与えられた、いつ、そしてその後。
これが私がやろうと思っていることです:
- シナリオ前【DB設置】
- 与えられた ["ID は (.*) テーブルで見つかりました"]
- 【送信するデータをテーブルに用意する】場合 上記のリクエストデータ
- 次に、[ループして着信応答を検証します]
これにアプローチするための良い方法を設計するのを手伝ってくれる人がいますか?
ありがとうございました。