斷言

內建的可擴展 assert/verify 函式庫可在 Nightwatch 實例上以兩個命名空間的形式使用,其中包含對元素執行斷言的相同方法

  • .assert - 當斷言失敗時,測試會結束,並跳過所有其他斷言。
  • .verify - 當斷言失敗時,測試會記錄失敗並繼續執行其他斷言。

以下將結束測試
browser.assert.visible('.non_existing');

但是,這只會記錄失敗並繼續

browser.verify.visible('.non_existing');

基本斷言

來自 Node.js assert 模組 的方法也可在 .assert/.verify 命名空間中使用。

否定 (".not") 斷言

自版本 1.3 起,所有斷言(包括自訂義的斷言)都有一個 ".not" 對應項,可用於斷言相反的情況。

因此,類似於 elementNotPresentcssClassNotPresenthidden 的斷言已過時並已被棄用。

範例
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 } } } }