2016-10-25 2 views
0

저는 방금 Jasmine 프레임 워크로 자바 스크립트를 테스트하고 테스트하려고합니다. 내 자바 스크립트는 공백으로 textarea의 자리 표시 자 속성을 설정하는 것입니다.Error - TypeError : expect (...). toHaveValue가 함수가 아닙니다.

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

이 함수는 textarea의 onClick 이벤트에서 호출합니다. 나는 코드 아래에 쓴 재스민 분광

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(''); 
}); 

}); 

그때 나는 오류가 아래 얻고있다 SpecRunner.html를 두 번 클릭하여이 코드를 실행하면 -

형식 오류 :. 기대 (...) toHaveValue는 아니다 함수

나는 또한 시도했다 - expect (placeholderval) .toEqual (""); 하지만이 오류가 발생합니다 - ''와 같을 것으로 예상됩니다.

<!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> 

내 사양 코드에 어떤 문제 : 아래

내 SpecRunner.html 파일입니다? 자리 표시 자의 가치를 어떻게 얻을 수 있는지 지금은 비어 있는지 확인할 수 있습니다.

답변

0

expect().toHaveValue()은 유효한 재스민 선택 도구가 아닙니다. 대신 expect().toContain()을 사용하여 sting 또는 array conatins가 특정 값인지 확인할 수 있습니다.

또한 Expected undefined to equal '' 아래를 보았다고 언급했습니다. 이것은 변수 placeholder의 값이 정의되지 않았기 때문입니다. 자리 표시 자의 값을 빈 문자열로 주장하고 있습니다.

+0

함수가 실행 된 후 textarea에서 'placeholder'속성 값을 가져 오는 방법은 무엇입니까? – Kate

+0

일부 변경 사항을 적용 해 주셔서 감사합니다. 당신의 대답은 유용했습니다. – Kate

관련 문제