@@ -190,12 +190,12 @@ Some people put it in a `_test.cc`. This is fine when the interface being mocked
190190`Foo` changes it, your test could break . (You can' t really expect `Foo`' s
191191maintainer to fix every test that uses `Foo`, can you?)
192192
193- So, the rule of thumb is: if you need to mock `Foo` and it ' s owned by others,
194- define the mock class in `Foo`' s package (better, in a ` testing ` sub- package
195- such that you can clearly separate production code and testing utilities ), put
196- it in a ` .h ` and a ` cc_library ` . Then everyone can reference them from their
197- tests. If ` Foo ` ever changes, there is only one copy of ` MockFoo ` to change, and
198- only tests that depend on the changed methods need to be fixed.
193+ Generally, you should not define mock classes you don ' t own. If you must mock
194+ such a class owned by others, define the mock class in `Foo`' s Bazel package
195+ (usually the same directory or a ` testing` sub-directory ), and put it in a `.h`
196+ and a `cc_library` with `testonly=True `. Then everyone can reference them from
197+ their tests. If `Foo` ever changes, there is only one copy of `MockFoo` to
198+ change, and only tests that depend on the changed methods need to be fixed.
199199
200200Another way to do it: you can introduce a thin layer `FooAdaptor` on top of
201201`Foo` and code to this new interface. Since you own `FooAdaptor`, you can absorb
0 commit comments