I recently ran into a problem that stopped me from having 100% test coverage on a file.
This is the piece of code, the overall reasoning for it can be found on the microtime manual page:
In case you did not spot it, the else path is never accessed if your system has a "microtime" function available. Additionally the change can be non-trivial because time() returns something like 1012314124 and microtime() returns "0.80057400 1257872321" or "1257872326.3036".
My first idea was something like this in the test case:
Then the idea was to use variable functions, but in the end I think it's not worth to change the source code to something less intelligable only to achieve 100% test coverage for a trivial case.
Of course you could always invoke a CLI php with a special php.ini if you have bigger chunks of code to be tested depending on the availability of certain functions.
Another idea could be to create a wrapper for microtime that you can mock and in your mock object always return the output of time() instead of microtime(), this would probably be the best tradeoff between readability and testability.
Any ideas?
This is the piece of code, the overall reasoning for it can be found on the microtime manual page:
This function is only available on operating systems that support the gettimeofday() system call.
In case you did not spot it, the else path is never accessed if your system has a "microtime" function available. Additionally the change can be non-trivial because time() returns something like 1012314124 and microtime() returns "0.80057400 1257872321" or "1257872326.3036".
My first idea was something like this in the test case:
Then the idea was to use variable functions, but in the end I think it's not worth to change the source code to something less intelligable only to achieve 100% test coverage for a trivial case.
Of course you could always invoke a CLI php with a special php.ini if you have bigger chunks of code to be tested depending on the availability of certain functions.
Another idea could be to create a wrapper for microtime that you can mock and in your mock object always return the output of time() instead of microtime(), this would probably be the best tradeoff between readability and testability.
Any ideas?
Posted by fa
in PHP
| Comments (11)
| Trackbacks (0)
Defined tags for this entry: code coverage, php
Can't stop watching it...
eeePC + LineIn = murks, aber noch nicht grossartig recherchiert
eeePC + LineIn = murks, aber noch nicht grossartig recherchiert
Tja, schon Dienstag und ich bin mittlerweile 40h wieder in der Heimat, trotzdem ein kurzes Review.
Samstag morgen um kurz vor 10 kamen wir als Pulk von 10 Münchnern im Hamburger Geomatikum an, nicht ohne meine fassungslose Feststellung, dass man sich auch verlaufen kann, wenn 6 Leute auf 6 iPhones 6 mal Google Maps studieren.
Dann gings gleich los mit dem Begrüßen alter Bekannter (aus dem IRC, von Konferenzen und sonstigen Events) und... Frühstück! Dazu erstmal ein riesiges Lob, das Essen war 1a und auch reichlich vorhanden, dazu noch von einem grandiosen Team serviert.
Weiter gings mit der Planung/Abstimmung der Sessions, das hätte man irgendwie straffen sollen, ich weiss nur nicht wie. Dann folgten 4 Sessions mit viel Palaver dazwischen, bei mir Softwaremetriken, PHP Performance Un-Tuning, Enterprise PHP und Zukunft der QA in PHP. Enterprise war mir etwas zu allgemein, auf jeden Fall aber besser als die letztjährige Version, die sich auf ein PHP-Bashing vs. Java-Bashing herunterbrechen liess und die Zukunft der QA war mehr die Gegenwart der QA, aber trotzdem ein guter Überblick.
Samstag abend haben wir uns dann vom Mob ferngehalten, mir persönlich war der Gedanke an 180 Leute am selben Ort sowieso etwas suspekt. Also beim abends weggehen. Wir haben einen ausgedehnten Spaziergang von ca. 80min auf dem Weg zu einem geschätzt 10min entfernten Restaurant gemacht, wenigstens was von Hamburg gesehen, und dann weitergezogen.
Dann kam auch schon der Sonntagmorgen, wieder etwas lascher Beginn mit Abstimmung, die irgendwie unnötig lange dauerte, dann Zukunft der QA, zweiter Teil, gefolgt von MySQL Performance (schon das zweite Mal, dass ich den Talk von Kris höre, aber diesmal doch 90% anders als damals). Danach gabs MySQL und HA und noch PHPDocumentor.
Insgesamt hatte ich von einigen Talks mehr versprochen, aber wahrscheinlich könnte man eh nicht viel mehr behalten, und der Hauptaspekt, das Wecken von Interesse bzw. der Anreiz, tiefer in die Materie einzusteigen, wird erfüllt. Werde mir die Slides nochmal zu Gemüte führen, aber insgesamt waren die Sachen doch fast bzw. genau auf Konferenz-Niveau. Also bleibt schon ein Lob für die Speaker :)
Nach erneutem Umherziehen und dem Abfinden mit der Tatsache, dass man Sonntag, 18 Uhr in Hamburg kein Bier
bekommt sind wir dann eben doch zum Flughafen (weil mein Arbeitgeber Anreise und Übernachtung übernommen hat, dafür herzlichen Dank). Da gabs wenigstens Weißbier, wenn auch nur Schöfferhofer.
Zusammengefasst meine (kleinen) Kritikpunkte:
· Leute mit Talks sollten sich vorbereiten oder es als "Diskussionsrunde" ankündigen
· Ich hätte gerne 30- und 60-min-Slots, soll halt jeder selber entscheiden, ob er mehr oder weniger lang reden kann/danach noch Diskussion will, normal ist das abzusehen
· paar mehr Getränke - war aber nicht schlimm, hab beide Tage bis ~15:00 noch was erwischt
Bleibt dann nur ein Dank an alle Beteiligten, das ausgezeichnete Orga-Team und die Sponsoren.
Wir sehen uns nächstes Jahr :)
So, das wars für 2009.
Angefangen hats am Freitag mit Ip Man, lässt sich eigentlich nicht viel spektakuläres drüber berichten, außer dass der Film toll war. Schon sehr gespannt auf Teil 2.
The Sky Crawlers am Sonntag, zuerst sahs aus wie ein Realfilm, danach wie ein Renderfilm und dann erst wie ein Anime mit fotorealistischen Hintergrund- und Flugzeugbildern. Bisschen arg philosophisch, aber trotzdem sehr gut.
Gestern dann noch Blood: The Last Vampire als Abschluss, ein eher untypischer Vampirfilm, wenn auch thematisch verwandt mit Blade. Stellt den in puncto Actionszenen aber klar in den Schatten, hat sehr viel Spass gemacht.
Interessant auch wie jedes Jahr, wen man so trifft. Diesmal bei Ip Man einen Arbeitskollegen samt gemeinsamen Bekannten, von dem natürlich keiner wusste, dass ihn der jeweils andere kennt. Bei Sky Crawlers wars sogar nur einer (plus die paar Gesichter, die man irgendwie jedes Jahr beim Filmfest sieht) und vor Blood eine Horde Leute und dann sassen wir auch noch direkt neben dem Pärchen, das aufm Sisters of Mercy-Konzert direkt neben uns stand - München, das Dorf.
Angefangen hats am Freitag mit Ip Man, lässt sich eigentlich nicht viel spektakuläres drüber berichten, außer dass der Film toll war. Schon sehr gespannt auf Teil 2.
The Sky Crawlers am Sonntag, zuerst sahs aus wie ein Realfilm, danach wie ein Renderfilm und dann erst wie ein Anime mit fotorealistischen Hintergrund- und Flugzeugbildern. Bisschen arg philosophisch, aber trotzdem sehr gut.
Gestern dann noch Blood: The Last Vampire als Abschluss, ein eher untypischer Vampirfilm, wenn auch thematisch verwandt mit Blade. Stellt den in puncto Actionszenen aber klar in den Schatten, hat sehr viel Spass gemacht.
Interessant auch wie jedes Jahr, wen man so trifft. Diesmal bei Ip Man einen Arbeitskollegen samt gemeinsamen Bekannten, von dem natürlich keiner wusste, dass ihn der jeweils andere kennt. Bei Sky Crawlers wars sogar nur einer (plus die paar Gesichter, die man irgendwie jedes Jahr beim Filmfest sieht) und vor Blood eine Horde Leute und dann sassen wir auch noch direkt neben dem Pärchen, das aufm Sisters of Mercy-Konzert direkt neben uns stand - München, das Dorf.
Gestern Larry Flynt - Die nackte Wahrheit gesehen, erstaunlich gut. Hatte ich irgendwie immer verpasst bisher.
Inglourious Basterds steht an, auch recht gespannt drauf. Und dann war da noch das FFF 2009, diesmal mit Blood: The Last Vampire, Ip Man und The Sky Crawlers - schaun mer mal.
Inglourious Basterds steht an, auch recht gespannt drauf. Und dann war da noch das FFF 2009, diesmal mit Blood: The Last Vampire, Ip Man und The Sky Crawlers - schaun mer mal.
« previous page
(Page 2 of 62, totaling 306 entries)
next page »
Layout by Ricky Wilson | Serendipity Template by Carl Galloway | Login
About
Life's a bitch, life's a whore. Nothing less, nothing more.
Read More
Der Autor...
... studierte bisher Informatik. Und zwar an der LMU München. Nebenher arbeitete er als PHP-Entwickler und Admin. Seit kurzem sogar Vollzeit und in Farbe
Quicksearch
last.fm
Song: Weather Experience (Top Buzz remix)
Artist: The Prodigy
14. June 2009, 19:23
Song: Charly (Trip Into Drum and Bass version)
Artist: The Prodigy
14. June 2009, 19:17
Song: Wind It Up (Rewound)
Artist: The Prodigy
14. June 2009, 19:11
1. August 2010, 01:00


