C++ 编写类的单元测试

C++ 编写类的单元测试,c++,unit-testing,googletest,C++,Unit Testing,Googletest,我有一个构造函数有6个参数的类。我想为这个类编写一个测试夹具。我尝试在测试构造函数中调用这些参数,但未能创建测试夹具 class TestHandler { public: using Buffer = common::dt::ByteBuffer; using HardwareInterface = common::interfaces::SyncBufferProducerConsumer<B

我有一个构造函数有6个参数的类。我想为这个类编写一个测试夹具。我尝试在测试构造函数中调用这些参数,但未能创建测试夹具

   class TestHandler
   {
   public:
       using Buffer            = common::dt::ByteBuffer;
       using HardwareInterface = 
            common::interfaces::SyncBufferProducerConsumer<Buffer>;

       explicit TestHandler(slave::cache::FullKeyValueCache& 
                       cache, const CommandHandler& commandHandler,
                       const RTDCache& rtdCache, HardwareInterface& 
       hardwareInterface, bool& statusChanged, bool& alarmsChanged)
              : m_keyValueCache(cache)
              , m_commandHandler(commandHandler)
              , m_rtdCache(rtdCache)
              , m_hardwareInterface(hardwareInterface)
              , m_statusChanged(statusChanged)
              , m_alarmsChanged(alarmsChanged)
          {
          }

          template <typename T>
          void respond()
          {
               m_checksumHelper.checksumEnabled() = 
                            m_commandHandler.checksumEnabled();
               auto responseMessage               = 
                    SalviaSerial::traitsTemplate::Response();

               fillResponse<T>(responseMessage);
               common::dt::GuardedWriteBuffer<uint8_t> 
                               writeBuffer(m_hardwareInterface);
               common::extensionCards::library::serialise
                      (responseMessage, writeBuffer.get_range());
               m_checksumHelper.calculateAndSetChecksum
                                  (writeBuffer.get_range());
           }

   private:
           template <typename T>
          void fillResponse(SalviaSerial::traitsTemplate::Response& 
                              response);
          slave::cache::FullKeyValueCache&    m_keyValueCache;
          const CommandHandler&               m_commandHandler;
          const RTDCache&                     m_rtdCache;
          HardwareInterface&                  m_hardwareInterface;
          DOBusImplementation::ChecksumHelper m_checksumHelper;
          bool&                               m_statusChanged;
          bool&                               m_alarmsChanged;
   };
类TestHandler { 公众: 使用Buffer=common::dt::ByteBuffer; 使用硬件接口= 通用::接口::SyncBufferProducerConsumer; 显式TestHandler(从::缓存::FullKeyValueCache& 缓存、const CommandHandler和CommandHandler, 常量RTDCache&RTDCache,硬件接口& 硬件接口、布尔值和状态更改、布尔值和报警更改) :m_keyValueCache(缓存) ,m_commandHandler(commandHandler) ,m_rtdCache(rtdCache) ,m_硬件接口(硬件接口) ,m_状态已更改(状态已更改) ,m_alarmsChanged(alarmsChanged) { } 模板 无效响应() { m_checksumHelper.checksumEnabled()= m_commandHandler.checksumEnabled(); 自动响应消息= SalviaSerial::traitsTemplate::Response(); fillResponse(responseMessage); 公共::dt::GuardedWriteBuffer writeBuffer(硬件接口); 公共::扩展卡::库::序列化 (responseMessage,writeBuffer.get_range()); m_checksumHelper.calculateAndSetChecksum (writeBuffer.get_range()); } 私人: 模板 void fillResponse(SalviaSerial::traitsTemplate::Response& 反应); slave::cache::FullKeyValueCache&m_keyValueCache; const CommandHandler&m_CommandHandler; const RTDCache&m_RTDCache; 硬件界面&m_硬件界面; DOBusImplementation::ChecksumHelper m_ChecksumHelper; bool&m_状态发生变化; 布尔&穆阿林沙格德; };
我需要为TestHandler类编写一个测试夹具,稍后使用这个t4xt夹具测试不同的可用响应。我需要关于在TestHandlerTest.cpp中调用这个类的建议,以及启动单元测试的方法。

如果你想在Google中创建一个测试,你需要(a)从
测试::测试
类继承,(b)确保你的fixture类是默认可构造的(可以不带任何参数构造)

如果您想在Google中创建一个测试,您需要(a)从
testing::Test
类继承,并且(b)确保fixture类是默认可构造的(可以在没有任何参数的情况下构造)

您是否使用任何单元测试框架?如果是这样,你应该提到它,如果可以的话,使用标签framework@Klaus我想使用google测试框架仅供参考,如果您的问题已经得到回答,请查看您是否使用任何单元测试框架?如果是这样,你应该提到它,如果可以的话,使用标签framework@Klaus我想使用谷歌测试框架供您参考,如果您的问题已经得到了回答,请参阅感谢您的回复,我们将浏览文档并在您提到的文档中再次返回,该文档提供了非常好的信息。我现在正在为不同的参数编写模拟类,并将返回以获取进一步的疑问谢谢你的回复,我将浏览文档并在你提到的文档中再次返回,该文档提供了非常好的信息。我现在正在为不同的参数编写mock类,并将返回以获取进一步的疑问