QSignalSpy: Cra sh в wait () - PullRequest
       8

QSignalSpy: Cra sh в wait ()

0 голосов
/ 04 февраля 2020

Я пытаюсь проверить соединение OP C UA, но мой тест завершается ошибкой в ​​функции ожидания connectedSpy. Функция opcua->connect() соединяет клиента с указанной конечной точкой.

РЕДАКТИРОВАТЬ: класс OpcUa является частью библиотеки DLL.

using namespace ::testing;
const QString END_POINT = "opc.tcp://127.0.0.1:43344";

class TestOpcUa : public Test
{
public:
    TestOpcUa()
    {
        testing::Mock::AllowLeak(_selectedConf);
        ON_CALL(*_selectedConf, getSERVERNAME()).WillByDefault(Return(END_POINT));
        _opcUaObject = new OpcUa(_selectedConf);
    }
    ~TestOpcUa() {}

protected:
    MockOpcConf* _selectedConf = new MockOpcConf();
    OpcUa* _opcUaObject = nullptr;
};

TEST_F(TestOpcUa, OpcUaConnectValid1)
{
    QSignalSpy connectedSpy(_opcUaObjectValid->getOpcUaClient(), &QOpcUaClient::connected);
    _opcUaObjectValid->getOpcUaClient()->connectToEndpoint(END_POINT_VALID); //works
    QVERIFY(connectedSpy.wait());
    ASSERT_EQ(connectedSpy.count(), 1);
    ASSERT_EQ(_opcUaObjectValid->getOpcUaClient()->state(), QOpcUaClient::Connected);
}

TEST_F(TestOpcUa, OpcUaConnectValid2)
{
    QSignalSpy connectedSpy(_opcUaObject->getOpcUaClient(), &QOpcUaClient::connected);
    _opcUaObject->connect(); //dont't work
    QVERIFY(connectedSpy.wait());
    ASSERT_EQ(connectedSpy.count(), 1);
    ASSERT_EQ(_opcUaObject->getOpcUaClient()->state(), QOpcUaClient::Connected);
}

int main(int argc, char *argv[])
{
    QCoreApplication app(argc, argv);
    testing::InitGoogleTest(&argc, argv);
    testing::InitGoogleMock(&argc, argv);
    return RUN_ALL_TESTS();
}

РЕДАКТИРОВАТЬ: я обнаружил ошибку, но я не ' Я не понимаю этого. В _opcUaObject->connect() я создаю новое подключение к функции в OpcUa. QObject::connect(_client, &QOpcUaClient::stateChanged, this, &OpcUa::checkClientConnection); Почему это не разрешено?

...