Birim test Zend kontrolörler - nasıl görünümünde ayarlamak edilmiştir ne sınarım

2 Cevap php

Zend, modeller görünümüne ilave edilir:

//In a controller
public function indexAction() {
  //Do some work and get a model
  $this->view->model = $model;    
}

Biz kolayca "model" (Ben bunun için SimpleTest kullanıyorum) görünümünde varolduğunu kontrol edebilirsiniz:

//In a unit test
  public function testModelIsSetInView() {
    //Call the controllers index action
    $this->assertTrue(isset($this->controller->view->model));
  }

Ancak, "değer" test de çalışmıyor:

//In a unit test
  public function testModelValue() {
    //Call the controllers index action

    //Both of these return null, though I'd like to access them!
    $this->assertNull($this->controller->view->model);
    $this->assertNull($this->controller->view->__get('model'));
  }

Kontrolör geçerli bir model kurmuş olduğu nasıl alabilirim (ya da en azından test)?

2 Cevap

Peki, çözüm (bu zaman diliminde en az planlı bir) Zend_View_Interface uygulayan test edilebilir bir görünüm olun. Bu "__set" geçirilen nesneleri döndüren bir "get" metodunu içerecektir. Sonra Test önyükleme işlemi sırasında bu görünümü kullanmak için denetleyicisi kanca olacak.

Bu optimal yaklaşım olmayabilir beri, ben hala potansiyel çözümler var başkalarından duymak isteriz.