In Google Mock, wenn du eine Methode mocken möchtest, die einen `std::unique_lock` zurückgibt, kannst du dies tun, indem du den Rückgabewert entsprechend definierst. Da `std::unique_lock` nicht kopierbar ist, musst du sicherstellen, dass du einen `std::unique_lock` zurückgibst, der korrekt verwaltet wird. Hier ist ein Beispiel, wie du dies umsetzen kannst: ```cpp #include <gmock/gmock.h> #include <gtest/gtest.h> #include <mutex> class MockMutex { public: MOCK_METHOD(std::unique_lock<std::mutex>, Lock, (), ()); }; TEST(MockMutexTest, ReturnsUniqueLock) { MockMutex mock_mutex; std::mutex mtx; // Set up the expectation to return a unique_lock EXPECT_CALL(mock_mutex, Lock()) .WillOnce(testing::Return(std::unique_lock<std::mutex>(mtx))); // Call the method auto lock = mock_mutex.Lock(); // Use the lock as needed ASSERT_TRUE(lock.owns_lock()); } ``` In diesem Beispiel wird ein Mock-Objekt `MockMutex` erstellt, das eine Methode `Lock` hat, die einen `std::unique_lock<std::mutex>` zurückgibt. Die Erwartung wird so gesetzt, dass beim Aufruf von `Lock` ein `std::unique_lock` zurückgegeben wird, der mit einem Mutex (`mtx`) verbunden ist. Achte darauf, dass der Mutex im Gültigkeitsbereich bleibt, solange der `unique_lock` verwendet wird.