| Index: base/test/mock_time_provider.h
|
| ===================================================================
|
| --- base/test/mock_time_provider.h (revision 0)
|
| +++ base/test/mock_time_provider.h (revision 0)
|
| @@ -0,0 +1,66 @@
|
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved.
|
| +// Use of this source code is governed by a BSD-style license that can be
|
| +// found in the LICENSE file.
|
| +
|
| +// A helper class used to mock out calls to the static method base::Time::Now.
|
| +//
|
| +// Example usage:
|
| +//
|
| +// typedef base::Time(TimeProvider)();
|
| +// class StopWatch {
|
| +// public:
|
| +// StopWatch(TimeProvider* time_provider);
|
| +// void Start();
|
| +// base::TimeDelta Stop();
|
| +// private:
|
| +// TimeProvider* time_provider_;
|
| +// ...
|
| +// }
|
| +//
|
| +// Normally, you would instantiate a StopWatch with the real Now function:
|
| +//
|
| +// StopWatch watch(&base::Time::Now);
|
| +//
|
| +// But when testing, you want to instantiate it with
|
| +// MockTimeProvider::StaticNow, which calls an internally mocked out member.
|
| +// This allows you to set expectations on the Now method. For example:
|
| +//
|
| +// TEST_F(StopWatchTest, BasicTest) {
|
| +// InSequence s;
|
| +// StrictMock<MockTimeProvider> mock_time;
|
| +// EXPECT_CALL(mock_time, Now())
|
| +// .WillOnce(Return(Time::FromDoubleT(4)));
|
| +// EXPECT_CALL(mock_time, Now())
|
| +// .WillOnce(Return(Time::FromDoubleT(10)));
|
| +//
|
| +// StopWatch sw(&MockTimeProvider::StaticNow);
|
| +// sw.Start(); // First call to Now.
|
| +// TimeDelta elapsed = sw.stop(); // Second call to Now.
|
| +// ASSERT_EQ(elapsed, TimeDelta::FromSeconds(6));
|
| +// }
|
| +
|
| +#include "base/time.h"
|
| +#include "testing/gmock/include/gmock/gmock.h"
|
| +
|
| +#ifndef BASE_TEST_MOCK_TIME_PROVIDER_H_
|
| +#define BASE_TEST_MOCK_TIME_PROVIDER_H_
|
| +
|
| +namespace base {
|
| +
|
| +class MockTimeProvider {
|
| + public:
|
| + MockTimeProvider();
|
| + ~MockTimeProvider();
|
| +
|
| + MOCK_METHOD0(Now, Time());
|
| +
|
| + static Time StaticNow();
|
| +
|
| + private:
|
| + static MockTimeProvider* instance_;
|
| + DISALLOW_COPY_AND_ASSIGN(MockTimeProvider);
|
| +};
|
| +
|
| +} // namespace base
|
| +
|
| +#endif // BASE_TEST_MOCK_TIME_PROVIDER_H_
|
|
|
| Property changes on: base\test\mock_time_provider.h
|
| ___________________________________________________________________
|
| Added: svn:eol-style
|
| + LF
|
|
|
|
|