0

データ駆動したいコード化された UI テストがあるとします。

テスト対象のアプリケーションに日付フィールドがあり、日付フィールドは現在の日付以上の日付のみをサポートしています。日付が C# コードから生成されるように、データ ソースに C# コードを追加することはできますか?

例えば:

 DateTime.Now.ToString("MM/dd/yyyy")
 DateTime.Now.AddDays(90).ToString("MM/dd/yyyy")

これが不可能な場合、C# を UIMap.uitest に入力できますか? コードを入力すると、テストはコードを文字列として取得します。C# コードをデザイナー ファイルに入力することはできますが、1) これは頻繁に上書きされ、2) 複数のオプションを実行することはできません。

助けてくれてありがとう!

4

3 に答える 3

2

UIMap.uitest2 つのファイルに支えられています。1 つは、再度生成されるため、既に述べたようにそのままにしておく必要があるデザイナー ファイルです。

2 番目のファイルはUIMap.cs、desginer ファイルで生成されるクラスの部分クラスです。

生成されたすべてのメソッドには、その特定のメソッドで使用されるプロパティを保持する [Methodname]Params クラスが付属しています。動的データを取り込むには、次のようにします。

これUIMap.csを追加します(RecordedMethod1があると仮定します)

    public partial class UIMap
    {
        public void RecordedMethod1(DateTime date)
        {
            RecordedMethod1Params.YourDate = date.ToString("MM/dd/yyyy");

            RecordedMethod1();
        }
    }

CodedUiTestクラスでTestMethod1、RecordedMethod1 に対して作成されたオーバーロードを使用します。

 this.UIMap.RecordedMethod1(DateTime.Now.AddDays(-90));
于 2013-11-08T19:57:19.730 に答える
0

これが私がこれにアプローチする方法です:

単純さと再現性と明確さのために、テストしたいさまざまな日付でデータ ソース (XML ファイルなど) を作成し、それを使用してテストのメソッド パラメータを設定する方が簡単です。

テストを実行すると、データ ソースにあるすべてのデータ行に対して再実行されます。したがって、10 個の日付エントリがある場合、10 回実行されます。

次のコードを CodedUI テストに挿入します。これにより、テストが読み取るデータ ソース (data.xml) が定義されます。

[DeploymentItem("MyTest\\data.xml"), DataSource("Microsoft.VisualStudio.TestTools.DataSource.XML", "|DataDirectory|\\data.xml", "Entry", DataAccessMethod.Sequential), TestMethod]

data.xml は次のようになります。

<?xml version="1.0" encoding="UTF-8" ?>
<Data>
  <Entry>
   <Date>2013/01/01</Date>
  </Entry>
  <Entry>
   <Date>2013/03/11</Date>
  </Entry>
  <Entry>
   <Date>2013/04/11</Date>
  </Entry>
  <Entry>
   <Date>2013/06/17</Date>
  </Entry>
</Data>

ここで、記録されたメソッドのパラメーターを変更して、data.xml データ ソースから読み取るようにします。

this.UIMap.RecordedMethodParams.UITxtDateEditText =TestContext.DataRow["Date"].ToString();
this.UIMap.RecordedMethod();

RecordedMethod に到達したときに CodedUI テストを実行すると、データ ソースにあるすべての日付エントリに対して 1 回実行されます。1 つまたは 10,000 を持つことができます。

テストのパラメーターを変更したいときにいつでも単純な XML を変更できるため、この方法が気に入っています。これにより、熟練していないテスターは、コードに手を出すことなく、要件に合わせてテストを変更することもできます。

これが役立つことを願っています!

于 2013-11-08T22:24:50.930 に答える