Я пытаюсь проверить соединение 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);
Почему это не разрешено?