Domanda

Ho definito alcuni segnali che vengono emessi in diverse occasioni:

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

Ora vorrei solo vedere come sono questi segnali e se i parametri sono corretti. Sembra che ci siano diversi approcci per monitorare i segnali.

in post qui Rohanpm si riferisce al parametro -vs che è specificato qui: http:// qt-project. org / doc / qt-4.8 / qtestlib-manual.html # qttestlib-riga-riga-argomenti

Questo sembra essere un modo elegante e rapido per ottenere le informazioni che richiedono. Ma ad essere sincero, non riesco a capire come e dove devo eseguire -vs. Non fa parte del qmake. Dove altro devo metterlo? (Sono abbastanza nuovo per qt).

relativo a qsignalspy Sembra essere necessario cambiare Le classi esistenti? Non c'è anche un approccio "esterno"?

C'è molta documentazione su come testare uno slot - ma correlato ai segnali? Potrei usare un printf o cout da qualche parte?

È stato utile?

Soluzione

Ho ricevuto questa idea mentre leggendo di più sul moc e sulla sua funzionalità.(Almeno mentre si utilizza NetBeans) ottengo ulteriori al mio file buttontst.cpp il file moc_buttentest.cpp.All'interno è un metodo chiamato:

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

Non riuscivo a credere che fosse così facile ma ho appena aggiunto un

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

E sembra fare esattamente quello che voglio.

Altri suggerimenti

Come scrive la documentazione collegata:

.

Esegue la funzione Test TOUPPER con tutti i dati di test disponibili, e la funzione Test Tint con il testData chiamato zero (se i dati di test specificati non esistono, il test associato fallirà).

/myTestDirectory$ testMyWidget -vs -eventdelay 500
.

Dove TESTMYWIDGET è il test binario di prova.Ecco la documentazione -vs:

.

-vs Emette ogni segnale che viene emesso

C'è anche qualche ulteriore documentazione se vieni l'output della Guida:

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

Se ti capita di avere problemi con la scrittura dei test dell'unità basata su QTestLib, questo è un buon punto di partenza per te con QT 4:

manuale QTESTLIB

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top