0
QML에서 사용되는 C++ 클래스 ScriptProcess
을 작성 중이므로 하위 프로세스에 대한 인터페이스로 사용됩니다. 상기 하위 프로세스는 스크립트를로드 한 다음 요구에 따라 기능을 실행합니다. 함수를 호출하면 결과 (값 또는 예외 임)가 신호를 통해 비동기 적으로 반환됩니다. 각 시험QML : 단위 테스트에서 신호가 호출되지 않습니다.
- 의 auxillary 과정을 열고 파일에서 스크립트를로드 : 간단히 말해서
, 나는 다음을 수행합니다. 이는import QtQuick 2.5 import QtTest 1.0 import dungeon 1.0 TestCase { id: test name: "ScriptProcessTest" property ScriptProcess session: null signal exceptionWhenLoadingCode(string type, int line, string message) SignalSpy { id: exceptionSpy target: test signalName: "exceptionWhenLoadingCode" } Component { id: process ScriptProcess { id: script onExceptionWhenLoadingCode: test.exceptionWhenLoadingCode(type, line, message) } } function startScript(scriptUrl) { var request = new XMLHttpRequest() request.open("GET", "data/%1.js".arg(scriptUrl), false) request.send(null) return process.createObject(test, {code: request.responseText}) } function cleanup() { if (session) { session.stop() } delete session session = null } function test_syntaxErrorInGlobalContextIsReported() { var count = exceptionSpy.count session = startScript("syntax-error-in-global-context") compare(exceptionSpy.count, count + 1) } function test_errorThrownInGlobalContextIsReported() { var count = exceptionSpy.count session = startScript("error-in-global-context") compare(exceptionSpy.count, count + 1) } }
ScriptProcess.code
속성을 통해 제공된 스크립트로Component
을 인스턴스화하여 수행됩니다. - 테스트를 실행하십시오.
- 테스트가 끝나면 프로세스를 종료하고이를 관리하는 개체를 삭제하십시오.
내 문제는 exceptionSpy
이라는 이 트리거되지 않는 것입니다. exceptionSpy.count
은 항상 0이며 나는 그 이유를 모릅니다. 왜 이런 경우입니까? SignalSpy
또는 Component
을 잘못 사용하고 있습니까?