2016-12-07 5 views
0

私はchai.jsの予想動作を理解しようとしています。無効な資格情報でログインが失敗したかどうかを確認するコードがあります。これは私のコードです:私は、無効なユーザー名とパスワードを期待し、同じを得ていますので、チャイのテキスト文字列での動作はどうでしょうか?

describe('Login', function() { 
    before(function(done) { 
    driver.get('https://pluma-dev.herokuapp.com/client-sign-in').then(done); 
    }); 
    it('Login with Incorrect credentials', function(done) { 
driver.findElement(webdriver.By.name("username")).sendKeys("[email protected]"); 
     driver.findElement(webdriver.By.name("password")).sendKeys("123"); 
     driver.findElement(webdriver.By.className("client-onboarding-signin-btn")).click().then(function(){ 
     driver.findElement(By.css(".has-error")).getText().then(function (text) { 
     console.log(text); 
     try{ 
       expect(text).to.be.a("Invalid email or password"); 
       done(); 
     } catch (e) { 
       done(e); 
     } 

     }); 

}); 

    }); 

}); 

私の理解によると、このテストケースを渡す必要があります。ただし、アサーションエラーが発生します。つまり、 1)間違った資格情報を使用してログインします。 AssertionError:無効な電子メールまたはパスワードが無効な電子メールまたはパスワードになると予想されます。

答えて

1

間違ったアサーションを使用しています。あなたが使用したい:

expect(text).to.equal("Invalid email or password"); 

.to.be.aは(本当にaという名前の主張にだけ呼び出しである)の値が一定のタイプを持っていると主張しています。その違いを示すコードを次に示します。

最初のテストは失敗します。 2番目と3番目は正しい使用法なので、パスします。

ahereのドキュメントがあります。

+0

ありがとうございました:) – user2987322

関連する問題