Unit test framework

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

D Vivendi

D Vivendi

03/12/2013 09:57:32
Quote Anchor link
Ik heb een unit test en mocking framework geschreven en nu wil ik eigenlijk weten of het voor andere net zo goed werkt als voor mij.

Mocht iemand interesse hebben om het eens uit te proberen, dan kun je het downloaden op deze GitHUb pagina.

Daarin staat uiteraard ook de uitleg hoe je het in detail moet gebruiken.
Schroom je overigens niet om het project te "Watchen" of the "Starren" als je zelf ook een github account hebt. Dat zou ik enorm waarderen.

Nu weet ik natuurlijk niet hoeveel er hier ook daadwerkelijk OO programmeren, laat staan hun code unit testen. Maar ik zou zeggen, misschien is dit dan een goed begin ;)
Gewijzigd op 03/12/2013 10:05:30 door D Vivendi
 
PHP hulp

PHP hulp

22/12/2024 13:17:25
 
Ward van der Put
Moderator

Ward van der Put

03/12/2013 11:31:17
Quote Anchor link
Nice, je kunt nooit te veel (unit)testen :)

Mag ik, puur uit technische belangstelling, vragen waarom je deze vorm van assertions gebruikt?

$this->Assert($bool)->Should()->BeFalse();

In PHPUnit is dat kortweg:

$this->assertFalse($bool);
 
Wouter J

Wouter J

03/12/2013 12:22:53
Quote Anchor link
Jouw mocking is heel vaag. Het nut van mocking is juist dat je de andere klasse niet initialiseert, zodat je niet afhankelijk bent van het feit of die klasse goed werkt of niet.

Wat jij doet is bij het mocken een nieuwe klasse aanmaken, dat is nu net niet de bedoeling.
 
D Vivendi

D Vivendi

03/12/2013 13:45:12
Quote Anchor link
@Ward van der Put
De rede dat ik voor die vorm heb gekozen is omdat je op die een soort "fluent" achtige syntax hebt. Ik vind het persoonlijk makkelijk lezen en uitbreiden. Je kan bijvoorbeeld ook dit doen:

$this->Assert($num)->Should()->BeInt()->And()->GreaterThan(5);

Dus eigenlijk meer een kwestie van smaak denk ik en ook gewenning uit de .NET wereld waar dit idee vandaan komt. Maar goed, dit is PHP en daarom belangrijk om te weten wat mensen fijner vinden. Dan kan ik het altijd nog aanpassen :)

@Wouter J
Je hebt inderdaad gelijk wat betreft het initialiseren van een object voor het mocken. Dat zou niet moeten op de manier hoe ik dat nu doe. Dat ga ik nog ff verbeteren.
 
Wouter J

Wouter J

03/12/2013 13:54:10
Quote Anchor link
> Dan kan ik het altijd nog aanpassen :)

Ik vind het ook wel fijn werken (al zou ik wel altijd beginnen met een lowercase letter). Ziet er een beetje uit als de geweldige syntax van PHPspec:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?php

// ...

class StopwatchSpec extends ObjectBehaviour
{
    public function it_cannot_stop_when_not_started()
    {

        $this->shouldThrow(\LogicException)->duringStop();
    }


    public function it_times_the_laps()
    {

        $this->start();
        sleep(1200);
        $this->lap();
        sleep(1200);
        $this->stop();

        $this->getLaps()->shouldReturn(2);
        $this->getLapTime()->shouldBeLike(1200);
    }
}
Gewijzigd op 03/12/2013 13:56:42 door Wouter J
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.