I am trying to write tests for an object that uses a cache.
The issue that I am running into is this. Normally, I write all my tests from outside the object, ie. my tests treat the object as a black-box and I only use the api for tests.
This shields me from changes in my object implementation causing changes in my tests, and validates that changes don't break the api, blah blah blah - standard testing stuff.
But, this object implements a cache internally, but from the outside there is no way of knowing if the cache was used or not.
What is the best way of testing the caching behavior?
I could add extra methods to the api to check for cache state, but that opens up a closed interface.
I could instantiate methods on the fly the show the cache state and have them only instantiate while testing, but then I'm not testing the same code I'm running when not testing.
Or I could look at the internals of the cache in my tests, which violates my test-from-the-outside principle.
How do the wise test caching behavior?
-pete
"Worry is like a rocking chair. It gives you something to do, but it doesn't get you anywhere."
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.