CakePHP'nin TestAction yöntemi bir yönlendirme çağrısı hayatta miyim?

1 Cevap php

Ben CakePHP çerçevesi ve SimpleTest kullanarak birim testleri yazmak için başlıyorum. Belgeler açıklanır a problem with the testAction method denetleyici başka bir sayfaya tarayıcı yönlendirir zaman. Orada bir link to a possible fix ile umutlu bir not olduğunu, ancak bağlantı bozulur.

Herkes bu çalışma aldı? O kırık link işaret nereye bulmak nasıl biliyor?

Ben yönlendirme çağrıyı geçersiz kılmak için partial mock objects kullanarak bir tartışma bulundu, ancak bu TestAction yöntemi ile çalışmak için görünmüyor. Ben bir şekilde dağıtıcı ile alay kumandayı kaydetmek gerekiyor sanıyorum.

İşte similar question on Google groups bulunuyor.

1 Cevap

Ben çalışmak için bir şey var, bu yüzden ben buradan sonrası düşündüm. Ben henüz onunla mutluyum emin değilim.

Bir yönlendirme test edebilmek istiyorsanız, bu değiştirin:

$this->redirect(array('action'=>'index'));

Bunun için:

$this->redirect(array('action'=>'index'), null, false);
return 'redirected to index';

Şimdi test bu gibi görünebilir:

$data = array(...);
$result = $this->testAction(
    '/people/edit/1',
    array('method' => 'post', 'data' => $data));
$this->assertEqual(
    'redirected to index',
    $result);

Kontrolörün yönlendirme yöntemi ile sorun varsayılan () çıkış çağırır ve bu tüm test paketinin dışında çıkar olmasıdır. Bu sürüm yönlendirme yönteminin $ çıkış parametresi yanlış geçer, ve sonra) return yerine (çıkış kullanır. Bu yönlendirme başlığı ile birlikte tarayıcıya yankılandı rağmen dönüş değeri, isterseniz test durumda doğrulamak için sadece bir şeydir. Sürece küçük bir mesajdır gibi olsa da, ben bu konuda herhangi bir sorun görmüyorum.

Biz return yerine exit () çağırdığınızda denetleyicisi yöntemi sonra idam olabilecek herhangi bir önemli kod var gibi görünüyor değil. Bir hızlı bir test sayfası normal davrandığını göstermektedir.