Pregunta

Definí algunas señales que se emiten en diferentes ocasiones:

signals:
    void buttonXClicked(int x);
    void numButtonsChanged(int num);

Ahora sólo me gustaría ver cómo se ven estas señales y si los parámetros son correctos.Parece que existen varios enfoques para monitorear las señales.

En el correo aquí rohanpm se refiere al parámetro -vs que se especifica más detalladamente aquí:http://qt-project.org/doc/qt-4.8/qtestlib-manual.html#qtestlib-command-line-arguments

Esta parece ser una forma elegante y rápida de obtener la información que necesito.Pero para ser honesto, no puedo entender cómo y hacia dónde tengo que correr. -vs.no es parte de qmake.¿Dónde más tengo que ponerlo?(Soy bastante nuevo en qt).

Relacionado a la QSignalSpy ¿Parece necesario cambiar las clases existentes?¿No existe también un enfoque "externo"?

Hay mucha documentación sobre cómo probar una ranura, pero ¿está relacionada con las señales?¿Puedo usar un printf o cout ¿en algún lugar?

¿Fue útil?

Solución

Se me ocurrió esta idea mientras leía más sobre el moc y su funcionalidad.(Al menos mientras uso NetBeans) obtengo adicional a mi archivo ButtonTest.cpp el archivo moc_ButtonTest.cpp.Dentro hay un método llamado:

// SIGNAL 0
void ButtonTest::buttonXClicked(int _t1)
{
    void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
    QMetaObject::activate(this, &staticMetaObject, 0, _a);    
}

No podía creer que fuera tan fácil, pero acabo de agregar un

std::cout <<"buttonXClicked: "<<_t1;

y parece hacer exactamente lo que quiero.

Otros consejos

Como escribe la documentación vinculada:

Ejecuta la función de prueba toUpper con todos los datos de prueba disponibles y la función de prueba toInt con los datos de prueba llamados cero (si los datos de prueba especificados no existen, la prueba asociada fallará).

/myTestDirectory$ testMyWidget -vs -eventdelay 500

donde testMyWidget es el binario de prueba creado.Aquí va el -vs documentación:

-vs emite cada señal que se emite

También hay más documentación si busca el resultado de ayuda:

/myTestDirectory$ testMyWidget --help | grep "\-vs"
-vs outputs every signal that gets emitted

Si tienes problemas para escribir QTestLib pruebas unitarias basadas, este es un buen punto de partida para usted con Qt 4:

Manual de QTestLib

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top