15. 顧客モデルのテスト [1]
public class Customer extends WebModel {
public Customer() {
super("customer");
}
/* customer/id */
public final WebModelitem<?> id = new WebModelitem<>(this, "id");
/* customer/name */
public final WebModelitem<?> name = new WebModelitem<>(this, "name");
/* customer/phone */
public final WebModelitem<?> phone = new WebModelitem<>(this, "phone");
/* customer/address */
public final WebModelitem<?> address = new WebModelitem<>(this, "address");
}
• WebModel, WebModelitem は WTF が提供するクラス。
• id, name などは Wagby で設計した項目名をそのまま使う。
16. 顧客モデルのテスト [2]
@Test
public void test03_InsertCustomer() {
selectMenu("サービス", "顧客検索");
pageTitle().shouldHave(exactText("顧客情報 検索"));
clickNewButton();
pageTitle().shouldHave(exactText("顧客情報 新規登録"));
Customer customer = new Customer();
customer.name.val("ジャスミン太郎");
customer.phone.val("090-9999-8888");
customer.address.val("宜野湾市宇地泊902-1");
save();
pageTitle().shouldHave(exactText("顧客情報 詳細表示"));
}
• selectMenu, clickNewButton, save は WTF が提供するメソッド。
• 画面からの入力操作を、モデルオブジェクトの操作として実現。この記述で実際に
Web ブラウザからの入力が行われる。HTMLのノードを選択するコードは見えない。
(セレクタ、ロケータを意識しない。)
17. valメソッド/shouldHaveメソッド
項目への入力 : val() メソッド
入力値の確認 : shouldHave() メソッド
// モデルの情報を保持するインスタンス
WebModel model = new WebModel("customer");
// customerモデルのname項目への入力
new WebModelitem<>(model, "name").val("ジャスミン太郎");
// 「ジャスミン太郎」と入力されていることを確認
new WebModelitem<>(model, "name").shouldHave("ジャスミン太郎");