2015-07-21 92 views
1

在自動測試網站購物體驗時,我試圖驗證小計,總計和稅金是否正確計算。由於價格和/或稅收將在未來發生變化,因此我不能簡單地聲明控制權內的實際價格值。相反,我需要根據控制自身進行計算,並聲明數量乘以每個項目加在一起的單個價格等於小計,等等。Visual Studio 2012 - 編碼的UI測試生成器:斷言公式?

例如,說我的每一個控件被命名爲這樣的(控制名稱是星號):

Quantity = *UIItem2Cell* 
(InnerText has a Value of 2) 

Individual Price = *UIItem249Pane* 
(DisplayText has a value of 2.49) 

Individual Product Total (price x qty) = *UIItem498Pane* 
(InnerText has a Value of 4.98) 

而是驗證值是實際數字,我可以寫使用標識符作爲一個斷言公式變量?

請記住,我使用編碼的UI測試生成器而不是直接寫代碼。

如果個別產品總的innerText斷言比較是AreEqual,可以比較值是這樣的:

UIItem2Cell-InnerText * UIItem249Pane-DisplayText 

A.是這種配方的可能?

B.如果是的話,我該怎麼寫呢?

(請原諒我,因爲我很綠色,當談到這一點)。

回答

0

你肯定可以。首先,在您的應用程序中,在控件上使用IDs將非常有用,因此您可以根據該條件進行匹配。這樣你不使用計算值的搜索條件。

現在,當是你的問題,你需要從細胞中取出這些值,計算Value,並用它在你的Search Criteria

// I'd recommend trimming text values: 
// depending on how tables and such are rendered you'll have extra white-space characters 
var firstValue = Double.Parse(UIItem2Cell.InnerText.Trim()); 
var secondValue = Double.Parse(UIItem249Pane.DisplayText.Trim()); 
var calculatedValue = string.Format("{0,N2}%", firstValue * secondValue); 

// assuming your in a web app 
var totalDiv = new HtmlDiv(currentHtmlDoc); 
totalDiv.SearchProperties.Add(new PropertyExpression(HtmlDiv.PropertyNames.InnerText, calculatedValue, PropertyExpressionOperator.Contains)); 
Assert.IsTrue(totalDiv.TryFind()); 
SringAssert.Contains(totalDiv.InnerText,calculatedValue); 
相關問題