2014-12-29 2 views
0

에서 프로토 타입 메서드 내 예외를 throw하는 것은 JavaScript로 자동화 테스트를 수행합니다 (실제로 JScript가 적용되는 것 같지만 예외를 throw하는 방법을 알고 있는지 궁금해하고 있습니다). 프로토 타이핑 된 오브젝트 메소드 내부에 다음과 같이 외부 함수에 포착되도록합니다. MyObject는 외부 함수 (TestComplete라는 테스팅 소프트웨어를 사용하여 소프트웨어에서 실행되는 "TestCase") 내부에서 호출됩니다. 별도의 파일에 외부 try catch (JavaScript)

function MyObject() 
 
{ 
 
    //Object properties 
 
} 
 

 
//Inherits object properties and methods from ParentObject 
 
MyObject.prototype = new ParentObject(); 
 
MyObject.prototype.constructor = MyObject; 
 

 
MyObject.prototype.foo = function() 
 
{ 
 
    //Will try to perform some action and may throw an exception 
 
}
(더 조사 후,이 주요 문제가 될 것으로 보인다하지만 코드/라이브러리의 지배적 인 구조로 인해 고정 할 수 없음) :

function TestCase() 
 
{ 
 
    try 
 
    { 
 
     var object = new MyObject() 
 
     object.foo(); 
 
    } 
 
    catch(e) 
 
    { 
 
     //Log an error 
 
    } 
 
    finally 
 
    { 
 
     //Clean up 
 
    } 
 
}

내가 지금보고있는 것은 TestCompl ete 10 (내 IDE/Debugger는 본질적으로) 외부 try catch 내에서 함수가 호출 되더라도 예외가 throw되고 catch되지 않는다는 런타임 오류를 발생시킵니다. 나는 다른 정규 함수를 사용하여이 작업을 했으므로 예외가 발생하면 잡아 당겨서 테스트 케이스를 종료 한 다음 테스트 케이스 단계에서 정리할 수 있도록이 방법으로 작업해야한다.

감사합니다.

+0

상속이 잘못되었습니다. http://blog.slaks.net/2013-09-03/traditional-inheritance-in-javascript/ – SLaks

+0

@SLaks - 더 좋습니까? 오타 ( – JMoser

+0

) 아니요 (음, 약간). 내 블로그 게시물을 읽으십시오. – SLaks

답변

1

일부 테스트 완성 포럼에 대한 추가 조사를 마친 후 알려진 문제 일 것 같습니다. 그래서 이것은 JavaScript/JScript와는 아무런 관련이 없습니다. 이것은

http://smartbear.com/forums/f74/t49620/jscript-exception-propagation-between-script-un/

http://www.sqaforums.com/forums/automatedqa-smartbear-testcomplete/84991-useunit-exceptions.html

그러나, 여기에이 문제를 해결하기 위해 무엇을 할 수 있는지에 대한보다 자세한 솔루션, 여기에 몇 가지 포럼 게시물에 표시됩니다, 그것은 정말 밉다. 나는 이미 이것을 해결책으로 생각해 봤지만, 이것이 처음에는 JavaScript/JScript 오류라고 생각하여 더 나은 것이 있는지 알고 싶었습니다.

http://smartbear.com/forums/f81/t74287/handling-exceptions-in-different-units/