斷言
內建的可擴展 assert
/verify
函式庫可在 Nightwatch 實例上以兩個命名空間的形式使用,其中包含對元素執行斷言的相同方法
.assert
- 當斷言失敗時,測試會結束,並跳過所有其他斷言。.verify
- 當斷言失敗時,測試會記錄失敗並繼續執行其他斷言。
以下將結束測試
browser.assert.visible('.non_existing');
但是,這只會記錄失敗並繼續
browser.verify.visible('.non_existing');
基本斷言
來自 Node.js assert 模組 的方法也可在 .assert
/.verify
命名空間中使用。
否定 (".not") 斷言
自版本 1.3 起,所有斷言(包括自訂義的斷言)都有一個 ".not"
對應項,可用於斷言相反的情況。
因此,類似於 elementNotPresent
、cssClassNotPresent
、hidden
的斷言已過時並已被棄用。
範例
describe('Demo .not assertion', function() {
it('demo test', function(browser) {
browser.init();
browser
.assert.not.elementPresent('.not_present') // previously .assert.elementNotPresent()
.assert.not.visible('.non_visible') // previously .assert.hidden()
.assert.not.urlContains('http://');
// ...
})
})
自動重試
預設情況下,Nightwatch 會自動重試失敗的斷言,最多 5000 毫秒。這可以透過在您的 globals
中設定 retryAssertionTimeout
屬性(以毫秒為單位)來設定(另請參閱 使用測試全域變數)。
如果達到給定的逾時時間,測試執行器將放棄重試,並將斷言標記為失敗。
範例設定
{
src_folders: ['tests'],
test_settings: {
default: {
launch_url: 'https://nightwatch.dev.org.tw',
globals: {
myGlobalVar: 'some value',
retryAssertionTimeout: 5000
}
}
}
}