このチュートリアルでは、コード化されたテスト ケース (applyForLoan.cs ) を作成して、UiBank アプリケーションにより算出されたローンの金利がユーザーの計算と一致するかどうかを確認する方法について説明します。テスト ケースは、コード化されたソース ファイル (LoanApplication.cs ) を参照し、テスト データの生成に使用される get メソッドと set メソッドを持つクラスを含みます。
LoanApplication
というクラスを作成します。
Loan Application (ローン申請書) フォームのすべてのフィールドにパブリック オブジェクトを作成し、各フィールドに get メソッドと set メソッドを使用します。
assignment public class LoanApplication
{
public string email { get; set; }
public int income { get; set; }
public int loanAmount { get; set; }
public int loanTerm { get; set; }
public int age { get; set; }
public int expectedLoanRate { get; set; }
}
public class LoanApplication
{
public string email {get;set;}
public int income {get;set;}
public int loanAmount {get;set;}
public int loanTerm {get;set;}
public int age {get;set;}
public int expectedLoanRate {get;set;}
}
新しいコード化されたテスト ケース ([ファイル] グループ > [新規] > [コード化されたテスト ケース] ) を作成し、applyForLoan という名前を付けます。
コード化されたテスト ケースで以前に作成したコード化されたソース ファイルを参照して、データを生成します。
assignment private LoanApplication myLoanApplication;
private LoanApplication myLoanApplication;
コード化されたテスト ケース (applyForLoan ) のパブリック クラスの内部 (ただし、Execute メソッドの外部) に、InitializeTestData という別のメソッドを作成します。ここで、Loan Application フォーム内の各フィールドの値を設定します。
assignment public void InitializeTestData ( )
{
myLoanApplication = new LoanApplication ( ) ;
myLoanApplication. age = 42 ;
myLoanApplication. email = "john.doe@uipath.com" ;
myLoanApplication. income = 30000 ;
myLoanApplication. loanAmount = decimal. ToInt32 ( testing. RandomNumber ( 20000 , 30000 , 0 ) ) ;
myLoanApplication. loanTerm = 5 ;
myLoanApplication. expectedLoanRate = 8 ;
}
public void InitializeTestData()
{
myLoanApplication = new LoanApplication();
myLoanApplication.age = 42;
myLoanApplication.email = "john.doe@uipath.com";
myLoanApplication.income = 30000;
myLoanApplication.loanAmount = decimal.ToInt32(testing.RandomNumber(20000,30000,0));
myLoanApplication.loanTerm = 5;
myLoanApplication.expectedLoanRate = 8;
}
Arrange セクションで、テスト ケースのテスト データを初期化します。
assignment InitializeTestData ( ) ;
InitializeTestData();
オブジェクト リポジトリ 内のコード化されたテスト ケースで使用するすべての UI 要素をキャプチャします。
アプリケーションのすべての UI 要素にアクセスして、オートメーションを開始します。UiBank アプリケーションを開いて、ローンの申請を選択します。
assignment var homeScreen = uiAutomation. Open ( ObjectRepository. Descriptors. UiBank. HomeScreen) ;
homeScreen. Click ( ObjectRepository. Descriptors. UiBank. HomeScreen. Products) ;
homeScreen. Click ( ObjectRepository. Descriptors. UiBank. HomeScreen. Loans) ;
var applyForLoanScreen = uiAutomation. Attach ( ObjectRepository. Descriptors. UiBank. ApplyForLoan) ;
applyForLoanScreen. Click ( ObjectRepository. Descriptors. UiBank. ApplyForLoan. ApplyForALoan) ;
var homeScreen = uiAutomation.Open(ObjectRepository.Descriptors.UiBank.HomeScreen);
homeScreen.Click(ObjectRepository.Descriptors.UiBank.HomeScreen.Products);
homeScreen.Click(ObjectRepository.Descriptors.UiBank.HomeScreen.Loans);
var applyForLoanScreen = uiAutomation.Attach(ObjectRepository.Descriptors.UiBank.ApplyForLoan);
applyForLoanScreen.Click(ObjectRepository.Descriptors.UiBank.ApplyForLoan.ApplyForALoan);
以前に初期化したテスト データを Loan Application フォームに入力します。
assignment var loanApplicationForm = uiAutomation. Open ( ObjectRepository. Descriptors. UiBank. LoanApplication) ;
loanApplicationForm. TypeInto ( ObjectRepository. Descriptors. UiBank. LoanApplication. EmailAddress, myLoanApplication. email) ;
loanApplicationForm. TypeInto ( ObjectRepository. Descriptors. UiBank. LoanApplication. LoanAmountRequested, myLoanApplication. loanAmount. ToString ( ) ) ;
loanApplicationForm. SelectItem ( ObjectRepository. Descriptors. UiBank. LoanApplication. LoanTerm, "5" ) ;
Log ( loanApplicationForm. ToString ( ) ) ;
loanApplicationForm. TypeInto ( ObjectRepository. Descriptors. UiBank. LoanApplication. CurrentYearlyIncome, "30000" ) ;
loanApplicationForm. TypeInto ( ObjectRepository. Descriptors. UiBank. LoanApplication. Age, myLoanApplication. age. ToString ( ) ) ;
var loanApplicationForm = uiAutomation.Open(ObjectRepository.Descriptors.UiBank.LoanApplication);
loanApplicationForm.TypeInto(ObjectRepository.Descriptors.UiBank.LoanApplication.EmailAddress, myLoanApplication.email);
loanApplicationForm.TypeInto(ObjectRepository.Descriptors.UiBank.LoanApplication.LoanAmountRequested, myLoanApplication.loanAmount.ToString());
loanApplicationForm.SelectItem(ObjectRepository.Descriptors.UiBank.LoanApplication.LoanTerm, "5");
Log(loanApplicationForm.ToString());
loanApplicationForm.TypeInto(ObjectRepository.Descriptors.UiBank.LoanApplication.CurrentYearlyIncome,"30000");
loanApplicationForm.TypeInto(ObjectRepository.Descriptors.UiBank.LoanApplication.Age, myLoanApplication.age.ToString());
Act セクションで、[Submit Loan Application] ボタンを選択するアクションを追加します。
assignment loanApplicationForm. Click ( ObjectRepository. Descriptors. UiBank. LoanApplication. SubmitLoanApplication) ;
loanApplicationForm.Click(ObjectRepository.Descriptors.UiBank.LoanApplication.SubmitLoanApplication);
Assert セクションで、アプリケーションが算出したローンの金利を取得し、InitializeTestData メソッドで見積もった金利と一致するかどうかを確認します。
assignment var loanResultsScreen = uiAutomation. Attach ( ObjectRepository. Descriptors. UiBank. LoanResults) ;
var actualLoanRate = loanResultsScreen. GetText ( ObjectRepository. Descriptors. UiBank. LoanResults. LoanRate) ;
testing. VerifyExpression ( actualLoanRate == myLoanApplication. expectedLoanRate. ToString ( ) , "The expected and actual loan rates are equal." , true , "Verify Expression" , true , false ) ;
var loanResultsScreen = uiAutomation.Attach(ObjectRepository.Descriptors.UiBank.LoanResults);
var actualLoanRate = loanResultsScreen.GetText(ObjectRepository.Descriptors.UiBank.LoanResults.LoanRate);
testing.VerifyExpression(actualLoanRate == myLoanApplication.expectedLoanRate.ToString(),"The expected and actual loan rates are equal.",true, "Verify Expression", true, false);