2014-12-29 4 views
0

Я делаю автоматизацию Тестирование с помощью JavaScript (JScript на самом деле, но я чувствую, что это применимо к любому), и мне интересно, знает ли кто-нибудь способ выбросить исключение внутри метода прототипированного объекта и улавливать его внешней функцией, как показано ниже. MyObject будет вызываться внутри внешней функции («TestCase», которая будет запускаться на программном обеспечении с помощью программного обеспечения для тестирования TestComplete).Выбросы исключений внутри прототипальных методов, не попадающих во внешний улов try (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 по существу) вызовет ошибку Runtime, заявив, что исключение выбрано и не поймано, хотя функция вызывается внутри внешнего try catch. У меня была эта работа, используя только другие регулярные функции, и мне нужно, чтобы она работала таким образом, чтобы при возникновении исключения она выходила на catch, заканчивая тестовый пример, а затем очищалась от шагов тестового примера.

Спасибо!

+0

Ваше наследство неверно. http://blog.slaks.net/2013-09-03/traditional-inheritance-in-javascript/ – SLaks

+0

@SLaks - лучше? Это была опечатка – JMoser

+0

Нет (ну, немного). Читайте мой блог. – SLaks

ответ

1

После более подробного изучения некоторых из тестовых завершенных форумов, похоже, это известная проблема. Так что это не имеет никакого отношения к JavaScript/JScript. Это показано в некоторых сообщений на форуме здесь,

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

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

Однако здесь более подробное решение, что вы можете сделать, чтобы решить эту проблему, это просто очень некрасиво. Я уже решил это как решение, но я хотел знать, был ли лучший, поскольку я думал, что это изначально было ошибкой JavaScript/JScript.

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

 Смежные вопросы

  • Нет связанных вопросов^_^