0

テストの自動化を作成している間、開発者が提供する API を活用する必要があり、これらの API は HashMap を引数として受け入れます。テスト コードでは、以下に示すように、パラメータとして hashmap を使用してそのような API をいくつか呼び出します。

 Map<String,String> testMap = new HashMap<String,String>();



setName()
{
   testMap.put("firstName","James");
   testMap.put("lastName","Bond");
   String fullName=devApi1.submitMap(testMap);
   testMap.put("realName",fullName);
}

setAddress()
{
  testMap.put("city","London");
  testMap.put("country","Britain");
  testMap.put("studio","Hollywood");
  testMap.put("firstName","");
  testMap.put("person",myMap.get("realName"));
  devApi2.submitMap(testMap);
}

ただし、setName 関数と setAddress 関数の両方で testMap を出力する必要がありましたが、マップは、それぞれの関数で設定された代替行の要素 (キーと値のペア) のみを出力する必要があります。つまり、setName は、submitMap API が呼び出される前に設定された 2 つの要素を Map に出力する必要があり、同様に、setAddress は、submitMap が呼び出される前に設定された 5 つの要素を出力する必要があります。

setName 出力は次のようになります。

  The data used for firstName is James. 
  The data used for lastName is Bond

setAddress 出力は次のようになります。

 The data used for city is London.
 The data used for country is Britain.
 The data used for studio is Hollywood.
 The data used for firstName is null.
The data used for person is James Bond

これを達成するために何か助けはありますか?

4

4 に答える 4

0

どのキーと値のペアを出力するかを示すフラグがないtestMapため、メソッドを呼び出すときに自分のコピーを作成することをお勧めします。submitMap

あなたはそれを次のように行うことができます

Map<String, String> printObj = new HashMap<String, String>

setName()
{
   testMap.put("firstName","James");
   testMap.put("lastName","Bond");
   String fullName=devApi1.submitMap(testMap);
   printObj.addAll(testMap);
   testMap.put("realName",fullName);
}

printObj次に、の代わりに印刷しtestMapます。

于 2012-09-15T23:15:06.540 に答える
0

私の以前の回答に対するあなたのコメントから、あるメソッドから入力された値を2番目のメソッドに表示したくないようです...

それは簡単に行うことができます。

testMap.clear();

すべてのメソッドの最初に。

于 2012-09-16T09:33:57.320 に答える
0

おそらく、アイテムをマップに追加して印刷を行うヘルパー関数を作成するでしょう。

public static <K,V> void add(Map<K,V> map, K key, V value){
  System.out.println(String.format("The data used for \"%s\" is \"%s\"", key, value));
  map.put(key, value);
}

別のメッセージを出力する必要がある場合は、別のヘルパー関数を使用するか、フォーマット文字列を引数として渡すことができます。

于 2012-09-15T18:55:38.260 に答える
0

コンマで区切られたキーのリストを引数として取り、それらのみを出力するメソッドを作成します。

何かのようなもの:

 public void printKeys(Map<String,String> map, String csKeys) {

      for(String key: csKeys.split(",")){
           if(map.conatinsKey(key)){
               System.out.println("The data used for " + key + " is " + map.get(key) );
           }
      }
 }

次のように呼び出すことができます。

printKeys(testMap, "firstName,lastName");
printKeys(testMap, "city,country,studio");
于 2012-09-15T19:00:15.527 に答える