我有一個在Automation中運行的測試套件。所有這些測試都是功能性UI測試。它看起來像下面是否可以忽略TearDown或清理代碼中的異常
[SetUp]
public void Setup()
{
CreatePolicy();
}
[Test]
public void Test1()
{
EditPolicyAndValidateResults();
}
[Test]
public void Test2()
{
EditPolicyAndValidateResults();
}
[TearDown]
public void TearDown()
{
DeletePolicy();
}
現在,問題是DeletePolicy()
有時失敗(隨機一個或兩個測試的),並且因爲它的相應的測試失敗。 規避失敗,如果已經添加了一個try catch塊來DeletePolicy()
,它看起來像下面這樣:
[TearDown]
public void TearDown()
{
try
{
DeletePolicy();
}
catch(Exception ex)
{
// Do nothing
}
}
由於測試DeletePolicy()
功能是不是我的測試用例的意圖,這種方法看起來好像沒什麼問題。這是正確的還是我在這裏錯過了一些東西?
「測試」DeletePolicy和「依賴於」DeletePolicy是兩個不同的東西。我會保持謹慎。考慮間歇性失敗是明智的。作爲一種臨時解決方案,直到可以考慮吞嚥異常「作品」爲止。 –
不知道CreatePolicy是否會導致某些內容持續存在,因此很難回答這個問題。如果是這樣,我認爲你必須進一步調查。如果沒有,也許你可以說這不是我在這裏測試和忽略它。當人們間斷地說事情時,我總是懷疑。我的經驗是,如果是這樣的話,那麼通常會有某種邏輯缺陷。 –