2017-10-05 101 views
-1

在我們應用程序的表格底部,我們有一個字段,顯示「顯示x到x個條目的x」,其中x是表中條目的數量。如何動態獲取變化字段中的記錄數量?

我想創建一個函數,可以保存上述字符串中的最後'x'值,以便在記錄被刪除後將其與新值進行比較。

例如...

  • 的文字是, '顯示項目1 - 100 100'
  • (我想最後的100號碼存儲爲X的斷言)
  • 刪除1記錄
  • 的文字是, '顯示項目1 - 99的99'
  • (我想最後的99號碼存儲爲y表示斷言)

有沒有任何直接的方式來存儲這些值與C#或硒?問題是,當運行測試時,由於之前運行的其他測試,上面的x和y值將始終不同。我知道從長遠來看,我應該有一致的數據進行測試,但現在這是以後的問題。

+0

你在Selenium上使用什麼測試框架?他們幾乎所有的人都提供了某種形式的測試環境來存儲狀態,儘管如果您在單個測試中這樣做了本地變量的話。 – Fenton

+0

我在硒上使用NUnit。 – JOberloh

回答

1

最簡單的存儲是局部變量,漂亮,乾淨,包含:

[TestFixture] 
public class MyTests { 
    [Test] 
    public void YourTest() { 
    var number = 0; 

    number = myPageObjectModel.GetResultCount(); 

    myPageObjectModel.Delete(); 

    Assert.AreEqual(number - 1, myPageObjectModel.GetResultCount()); 
    } 
} 

你可以存儲在類的數量,這將是更廣泛的應用,但我覺得這會啓動連接您的測試,他們將不得不按照特定的順序運行,所以我建議從一個局部變量開始,如果可以的話。

如果您正在使用強制您在不同類中的方法(如SpecFlow)之間跳過的技術,最好在場景上下文類中的步驟之間保留狀態。

+0

另一個解決方案是修改測試,而不是在框架中創建新功能。我可以將TableInformation的字符串存儲爲x,創建一個新記錄,刪除新記錄,然後將TableInformation作爲y,並將Assert.That(x = y)。感謝您讓我思考! – JOberloh