Verification code samples (.NET SDK)

Basic verification example

The following example uses the Verify class to verify navigation to a page on a website.

[Test]
public void Verify_linkNavigatesToLaptopsPage()
{
	//Launch the InternetExplorer browser.
	var browser = BrowserFactory.Launch(BrowserType.InternetExplorer);

	//Navigate to the New Tours website. 
	browser.Navigate("http://www.advantageonlineshopping.com/#/");

	//Click the "LAPTOPS" link
	browser.Describe<ILink>(new LinkDescription
	{
		TagName = @"SPAN",
		InnerText = @"LAPTOPS"
	}).Click();

	//Wait for the browser to complete the navigation.
	browser.Sync();

	//Verify that the correct page Web page opens.
	Verify.AreEqual("http://www.advantageonlineshopping.com/#/category/Laptops/1", browser.URL, "Verify_linkNavigatesToLaptopsPage", "Verify that the browser's URL is as expected.");

	browser.Close();
}

Back to top

Custom verification example

The following example shows how to use a custom verification method that verifies a sum of numbers. In this case, it is used to sum the price of two items in a shopping cart in a retail application.

The method receives three parameters: the two numbers to sum and the total.

The method is called in the test script, and the arguments passed are fetched from the application using UFT Developer API.

 // The example below shows usage of verification extensibility - implementing custom verifications
[Test]
public void TestTotalPrice() 
{
	long price1;
	long price2;
	long totalPrice;
	// .
	// .
	// This is where you add code to: add two items to the shopping cart, find their price,
	// and update each item's price in the price1 and price2 variables.
	price1 = 100;
	price2 = 200;
	totalPrice = 300;

	// Then go to the check-out page, find the total price, add update the totalPrice variable with this value.
	// .
	// .
	// The following code calls the custom verification method verifyTotalSumOfNumbers.
	// The verification name and description are set and then passed as arguments along with the price arguments.
	String name = "Verify Total Price";
	String verificationDescription = "Verify that the total purchase price is indeed a sum of the items in the cart";
	VerifyTotalSumOfNumbers(price1, price2, totalPrice, name, verificationDescription);

	// .
	// .
	// Continue test logic
	// .
	// .

}

// This is the implementation of the custom verification method
protected void VerifyTotalSumOfNumbers(long num1, long num2,
					long total, String name,
					String verificationDescription)
{

	// Create a VerificationData object and set its name, description and operation.
	var verificationData = new VerificationData();
	verificationData.Name = name;
	verificationData.Description = verificationDescription;
	verificationData.OperationName = "totalSumOfNumbers";
	// Operation name helps better categorize the check made.
	// For example, for the same verification name ("Verify Total Price") you could also have
	// the “checkCurrency” operation (in another VerificationData object).


	// Create the verification parameters, set their label and values.
	VerificationParameter verificationParameter1 = new VerificationParameter("First Number", num1);
	VerificationParameter verificationParameter2 = new VerificationParameter("Second Number", num2);
	VerificationParameter verificationParameter3 = new VerificationParameter("Actual Sum", total);

	// Add the verification parameters to the parameters list of the verificationData object.
	verificationData.VerificationParameters.Add(verificationParameter1);
	verificationData.VerificationParameters.Add(verificationParameter2);
	verificationData.VerificationParameters.Add(verificationParameter3);


	// Call a custom comparison method
	bool sumMatches = (num1+num2 == total);

	// Check whether the sums match. If they do, return reportVerification with a passes status.
	// If not, return it with a failed status. The status is displayed in the test report.
	if (sumMatches){
		Reporter.ReportVerification(Status.Passed, verificationData);
	}
	else{
		Reporter.ReportVerification(Status.Failed, verificationData);
	}
}
 

Back to top

See also: