2016-10-25 7 views
0

私はJasmineフレームワークでジャバスクリプトを学習してテストしようとしています。私のjavascriptは空白にtextareaのプレースホルダ属性を設定するだけです。エラー - TypeError:expect(...)。toHaveValueが関数ではありません

function clearPlaceholderTextOnFocus(i) { 
    i.placeholder = ''; 
} 

私はtextareaのonClickイベントでこの関数を呼び出しています。私はSpecRunner.htmlをダブルクリックすることで、このコードを実行すると、私はエラーの下に取得しています

describe("Test suite for clearPlaceholderTextOnFocus",function(){ 
it("Should set placeholder to blank", function(){ 

var i=affix('textarea[name="message"][placeholder="write your message here..."]'); 

clearPlaceholderTextOnFocus(i); 

var placeholderval = $('i').attr('placeholder'); 
expect(placeholderval).toHaveValue(''); 
}); 

}); 

をspec-ジャスミンのコードの下に書いた -

はTypeError:。期待して(...)toHaveValueではありません関数

私も試したことがあります - 期待(placeholderval).toEqual( ""); しかし、私はこのエラーが表示されます - 期待値未定義と等しい ''。以下は

は私のSpecRunner.htmlファイルです:

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8"> 
    <title>Jasmine Spec Runner v2.5.2</title> 

    <link rel="shortcut icon" type="image/png" href="lib/jasmine-2.5.2/jasmine_favicon.png"> 
    <link rel="stylesheet" href="lib/jasmine-2.5.2/jasmine.css"> 

    <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.1.1/jquery.js"></script> 
    <script src="lib/jasmine-2.5.2/jasmine.js"></script> 
    <script src="lib/jasmine-2.5.2/jasmine-html.js"></script> 
    <script src="lib/jasmine-2.5.2/boot.js"></script> 
    <script src="lib/jasmine-2.5.2/jasmine-jquery.js"></script> 
    <script src="lib/jasmine-2.5.2/jasmine-fixture.js"></script> 

    <!-- include source files here... --> 
    <script src="src/myfirst.js"></script> 

    <!-- include spec files here... --> 
    <script src="spec/myfirstSpec.js"></script> 

</head> 
<body> 
</body> 
</html> 

私のスペックコードと間違っていますか?プレースホルダの価値をどのように得ることができるので、それが今空白であるかどうかを確認できます。

答えて

0

expect().toHaveValue()は、有効なジャスミンセレクタではありません。代わりにexpect().toContain()を使って、stingか配列conatinsが特定の値であるかどうかを調べることができます。

あなたはまた、Expected undefined to equal ''の下にも直面していることに言及しました。これは変数placeholderの値が定義されていないためです。プレースホルダの値が空の文字列であると主張しています。

+0

私の関数が実行された後、どのように属性 'プレースホルダ'の値をtextareaから得ることができますか? – Kate

+0

ありがとうございました。あなたの答えは便利でした – Kate

関連する問題