次のリスト3は、リスト2のrandomSetterGetterAddressTest()で生成されたデータの例です。
Akira Morrisroe, 38 Roosevelt St. Suite 52 SAINT PAUL, KS 66771 Kaoru Sole, 798 Olympic Ave. Floor 87 WASHTA, IA 51061 Irwin Gugliotti, 372 Cherry Dr. Apt. 31 SMITHFIELD, ME 04978 Cheryl Edsall, 865 Elm Dr. Apt. 73 SHANDON, CA 93461 Sharayn Zitello, 103 Olympic Blvd. Room 15 ZEPHYR, TX 76890 Aleck Hermes, 794 Main Dr. MailStop 39 VERONA, WI 53593 Ossie Morrow, 250 Pine St. Room 86 AMA, LA 70031 Milos Calderone, 591 Spruce St. Desk 34 SAINT PETERSBURG, FL 33701 Laurie Brocklehurst, 898 Orange Ct. Apt. 68 GREENWICH, NY 12834 Joleen Jarvis, 538 Washington Dr. Apt. 40 PHOENIX, AZ 85010
簡単なAddressオブジェクトといえども、その正常動作の確認用としてリスト2のようなコードを作成しておけば、実装したコードが意図したとおりに動作するという安心感は高まります。ハードコーディングは使っていませんし、テストの繰り返しのたびにそれぞれ異なるデータを使っているからです。そして、どんなデータでも処理できるという安心感をいっそう高めたいと思ったら、テストの実行回数を増やせば大丈夫です。
ここまでにお見せした以外にも、QaRandomizerには多彩なメリットがあります。以降のセクションでは、QaRandomizerの機能を紹介していきます。使えそうなものがあったら、ぜひ利用してみてください。
QaRandomizerの機能
次の表1は、QaRandomizerが持つメソッドをまとめたものです。前述のとおり、ファーストネーム、ラストネーム、フルネーム、住所、メールアドレスのデータをランダムに生成するメソッドがあります。また、ランダムデータの抽出元となる内部データのリストを返すメソッドや、特定の型のリストからランダムな項目を返すメソッドもあります。
| QaRandomizerクラスのメソッド | 機能 |
RandomAddress getAddress() |
RandomAddressオブジェクトのインスタンスを取得する |
protected RandomAddress getAddressFromZipCode(java.lang.String zipcode) |
郵便番号を基に、対応する住所を取得する(※編集部注) |
protected java.util.Set |
"suite"、"room"、"mailstop"など、AddressTwoの生成に使用される文字列のリストを取得する |
protected java.util.Random getClassRandom() |
Randomオブジェクトのクラスインスタンスを取得するアクセサ |
java.lang.String getComplexString(int maxLength) |
ランダムな複合文字列を取得する。複合文字列とは、英数字と@%^$*,などの記号で構成される文字列で、例えば"wDr56$*c0Q"など |
java.lang.String getEmailAddress() |
ランダムなメールアドレスを取得する |
java.lang.String getExtendedString(int maxLength) |
ランダムな拡張文字列を取得する。拡張文字列とは、英文字(大文字と小文字)および@%^$*,などの記号で構成される文字列で、例えば"qwGfdiuR$#"など |
java.lang.String getFirstName() |
ランダムなファーストネーム(名)を取得する |
protected java.util.Set |
ランダムなファーストネーム(名)の抽出元となる内部リストを取得する |
java.lang.StringgetFullName() |
ランダムなフルネーム(氏名)を取得する |
protected com.edmunds.training.utilities.qarandomizer.QaRandomizerHelper getHelper() |
QaRandomizerHelperクラスを取得する。このクラスを使って、住所(郵便番号、ファーストネーム、ラストネーム)のデータを記述した内部XMLファイルにアクセスできる |
static QaRandomizer getInstance() |
QaRandomizerのシングルトンインスタンスを取得する |
java.lang.String getLastName() |
ランダムなラストネーム(姓)を取得する |
protected java.util.Set |
ランダムなラストネーム(姓)の抽出元となる内部リストを取得する |
|
型TのSetからランダムな項目を取得できる |
java.lang.String getSimpleString(int maxLength) |
ランダムな単純文字列を取得する。単純文字列とは、英文字(大文字と小文字)で構成される文字列 |
java.lang.String getSSN() |
ddd-dd-ddddの形式でランダムな社会保障番号を取得する |
protected java.util.Set |
内部定義された値のセットを基にして、街路名のリストを取得する |
protected java.util.Set |
"St."、"Ave"、"Blvd"など、街路名の種類を格納したセットを取得する |
java.lang.String getZipCode() |
ランダムな郵便番号を取得する |
protected java.util.Set |
ランダムな郵便番号の抽出元となる内部リストを取得する |
元記事ではこの欄が空白になっていたため、内容を補足しました。
以降のセクションでは、QaRandomizerの各機能を詳しく見ていきます。
ランダムな名前の取得
QaRandomizerには、ランダムな名前を利用するためのメソッドが3つあります。
getFirstName()getLastName()getFullName()
前述のリスト2では、これらのメソッドを使用して、QaRandomizerプロジェクトにリソースファイルとして組み込まれているXMLファイル内のファーストネーム(名)とラストネーム(姓)のリストから、ランダムなファーストネーム、ラストネーム、フルネームを返しています。
次の図2は、ファーストネーム、ラストネーム、郵便番号のそれぞれのXMLファイルをQaRandomizerのコードで処理する状況のイメージです。QaRandomizerはdom4jを使ってXMLファイルをJavaのDOMオブジェクトに変換します。
getFirstNamesList()メソッドとgetLastNamesList()メソッドを使用すると、ファーストネームとラストネームをまとめて取得できます。

