Test fikstür veri

0 Cevap php

Geçenlerde birim testleri kullanarak başladım ve bugüne kadar bir patlama oldu.

Ancak, benim yaklaşım düz yanlış hisseden bir duruma rastladım ettik ve ben bir "iyi" çözümü etrafında başımı sarmak olamaz.

Kodu için bağlam sfPHPUnit2Plugin ile test symfony yazılı tv yayın programları, görüntüleme için bir uygulamadır.

public function testLoadChannelBroadcasts() {

    $Start = new DateTime();
    $End = new DateTime();

    $Channels = ChannelTable::getChannelsWithBroadcastsTouchingTimeSpan($Start, $End);

    foreach ($Channels as $Channel) {
      $Channel->loadBroadcastsTouchingTimeSpan($Start, $End);
    }

    // test data

    $Broadcasts = $Channels[0]->Broadcasts;

    $assertion = $Broadcasts[0]->getDateTimeObject('start') <= $Start
     && $Broadcasts[0]->getDateTimeObject('end') >= $Start;

    $this->assertTrue($assertion, 'starts before scope, ends inside scope');

    $assertion = $Broadcasts[1]->getDateTimeObject('start') >= $Start
     && $Broadcasts[1]->getDateTimeObject('end') <= $End;

    $this->assertTrue($assertion, 'starts inside scope, ends inside scope');

    $assertion = $Broadcasts[2]->getDateTimeObject('start') >= $Start
     && $Broadcasts[2]->getDateTimeObject('end') >= $End;

    $this->assertTrue($assertion, 'starts inside scope, ends outside scope');

    $LongBroadcast = $Channels[1]->Broadcasts[0];

    $assertion = $LongBroadcast->getDateTimeObject('start') <= $Start
     && $LongBroadcast->getDateTimeObject('end') >= $End;

    $this->assertTrue($assertion, 'starts before scope, ends after scope');
}

Test yönteminin amacı iletişim kurar, ama veri (gergi) 'in test veri içeren ne varsayımlara dayanmaktadır. Bu daha iyi bir yaklaşım var mı?

0 Cevap