This is the
talk page for discussing improvements to the
Mock object article. This is not a forum for general discussion of the article's subject. |
Article policies
|
Find sources: Google ( books · news · scholar · free images · WP refs) · FENS · JSTOR · TWL |
![]() | This article is rated Start-class on Wikipedia's
content assessment scale. It is of interest to the following WikiProjects: | |||||||||||||||||||||||||||
|
![]() | This article links to one or more target anchors that no longer exist.
Please help fix the broken anchors. You can remove this template after fixing the problems. |
Reporting errors |
Mock objects are used in TestDrivenDesign (TDD). A class may interact with various neighbouring objects. When writing a unit test for the primary class, neighbouring classes are replaced with mock objects. In the test, these behave just like real objects. The programmer will set up return values for mock object methods as well as expectations for the number of times each method is called. Expected arguments for each mock method call can also be defined.
In this way, the primary class can be tested without the secondary, neighbouring objects having to exist at all. This allows testing to be used as a design tool: you can start at the top and watch the design riple out as you work your way down. Once a primary object and its test has been written, the mocks (and further unit tests) are implemented.
I hope I managed to make this article more accessible to laypeople; in particular, I felt that the e-mail client example was too technical for this article. I realize most of us Wikipedia geeks are, well, geeks, but really, this isn't Slashdot. Ataru 18:51, 28 June 2006 (UTC)
I agree; your alarm clock example is much better. -- Babomb 06:04, 29 June 2006 (UTC)
Would a reference to the fact that many people would still use the term "stub" make everything clearer. A stub is a "mock object" a "mock object" is a stub. Stubs are used in both procedural and OO languages. —Preceding unsigned comment added by 172.206.19.160 ( talk • contribs)
I'd like to suggest a change to the final link in the list of external links ("Mocking the Embedded World"). I am the principal author of the original paper.
Methods & Tools Newsletter (the current destination of the link being discussed) approached me asking if they could publish the work. I agreed and provided an edited and condensed version of the original paper.
The full paper AND an executable example project can be found at another link ( http://www.atomicobject.com/pages/Embedded+Software#MockingEmbeddedWorld). Perhaps this is a more useful external link; as such, I offer for consideration that the link be updated. Mkarlesky ( talk) 18:24, 22 January 2008 (UTC)
The analogy doesn't work. A mock isn't the object being tested, it facilitates the testing of other object. If a crash dummy is a mock, then the test is what happens to a car dashboard when a human body slams into it at 60mph. — Preceding unsigned comment added by 2605:6000:898D:CB00:4D87:538E:2F57:9E21 ( talk) 19:40, 31 January 2017 (UTC)
Much has changed since this article was first written, including the definition of mocks, fakes, and stubs. The newest reference OP used for this in the following section was from a StackOverflow post in 2010.
Mocks, fakes, and stubs
Classification between mocks, fakes, and stubs is highly inconsistent across the literature. Consistent among the literature, though, is that they all represent a production object in a testing environment by exposing the same interface.
I propose updating to include clear definitions, referencing these articles:
Hcsnoke ( talk) 15:26, 4 April 2023 (UTC)
This is the
talk page for discussing improvements to the
Mock object article. This is not a forum for general discussion of the article's subject. |
Article policies
|
Find sources: Google ( books · news · scholar · free images · WP refs) · FENS · JSTOR · TWL |
![]() | This article is rated Start-class on Wikipedia's
content assessment scale. It is of interest to the following WikiProjects: | |||||||||||||||||||||||||||
|
![]() | This article links to one or more target anchors that no longer exist.
Please help fix the broken anchors. You can remove this template after fixing the problems. |
Reporting errors |
Mock objects are used in TestDrivenDesign (TDD). A class may interact with various neighbouring objects. When writing a unit test for the primary class, neighbouring classes are replaced with mock objects. In the test, these behave just like real objects. The programmer will set up return values for mock object methods as well as expectations for the number of times each method is called. Expected arguments for each mock method call can also be defined.
In this way, the primary class can be tested without the secondary, neighbouring objects having to exist at all. This allows testing to be used as a design tool: you can start at the top and watch the design riple out as you work your way down. Once a primary object and its test has been written, the mocks (and further unit tests) are implemented.
I hope I managed to make this article more accessible to laypeople; in particular, I felt that the e-mail client example was too technical for this article. I realize most of us Wikipedia geeks are, well, geeks, but really, this isn't Slashdot. Ataru 18:51, 28 June 2006 (UTC)
I agree; your alarm clock example is much better. -- Babomb 06:04, 29 June 2006 (UTC)
Would a reference to the fact that many people would still use the term "stub" make everything clearer. A stub is a "mock object" a "mock object" is a stub. Stubs are used in both procedural and OO languages. —Preceding unsigned comment added by 172.206.19.160 ( talk • contribs)
I'd like to suggest a change to the final link in the list of external links ("Mocking the Embedded World"). I am the principal author of the original paper.
Methods & Tools Newsletter (the current destination of the link being discussed) approached me asking if they could publish the work. I agreed and provided an edited and condensed version of the original paper.
The full paper AND an executable example project can be found at another link ( http://www.atomicobject.com/pages/Embedded+Software#MockingEmbeddedWorld). Perhaps this is a more useful external link; as such, I offer for consideration that the link be updated. Mkarlesky ( talk) 18:24, 22 January 2008 (UTC)
The analogy doesn't work. A mock isn't the object being tested, it facilitates the testing of other object. If a crash dummy is a mock, then the test is what happens to a car dashboard when a human body slams into it at 60mph. — Preceding unsigned comment added by 2605:6000:898D:CB00:4D87:538E:2F57:9E21 ( talk) 19:40, 31 January 2017 (UTC)
Much has changed since this article was first written, including the definition of mocks, fakes, and stubs. The newest reference OP used for this in the following section was from a StackOverflow post in 2010.
Mocks, fakes, and stubs
Classification between mocks, fakes, and stubs is highly inconsistent across the literature. Consistent among the literature, though, is that they all represent a production object in a testing environment by exposing the same interface.
I propose updating to include clear definitions, referencing these articles:
Hcsnoke ( talk) 15:26, 4 April 2023 (UTC)