使用PHP与Silex的find()函数失败

时间:2015-03-21 01:47:19

标签: php twig silex

这是我在终端运行'phpunit tests'时收到的失败消息:

1)StylistTest :: test_find null与预期类型“object”不匹配。

/Users/evanbutler/Desktop/hairSalonApp/tests/StylistTest.php:163

这是我的测试方法:

function test_find()
  {
    //Arrange
    $name = "Stylist Jane";
    $id = 1;
    $name2 = "Stylist Bob";
    $id2 = 2;
    $test_stylist = new Stylist($name, $id);
    $test_stylist->save();
    $test_stylist2 = new Stylist($name2, $id2);
    $test_stylist2->save();

    //Act
    $result = Stylist::find($test_stylist->getId());

    //Assert
    $this->assertEquals($test_stylist, $result);
  }

这是我的方法:

static function find($search_id)
  {
    $found_stylist = null;
    $stylists = Stylist::getAll();
    foreach($stylists as $stylist) {
      $stylist_id = $stylist->getId();
      if ($stylist_id == $search_id) {
        $found_styist = $stylist;
      }
    }
    return $found_stylist;
  }

这是我的getAll方法:

static function getAll()
  {
    $returned_stylists = $GLOBALS['DB']->query("SELECT * FROM stylists;");
    $stylists = array();
    foreach($returned_stylists as $stylist) {
      $name = $stylist['name'];
      $id = $stylist['id'];
      $new_stylist = new Stylist($name, $id);
      array_push($stylists, $new_stylist);
    }
    return $stylists;
  }

如果您想在此处查看我的所有文件,请访问git存储库: https://github.com/evanb2/hairSalonApp.git

我一直盯着这个太久了,我完全被难倒了。

1 个答案:

答案 0 :(得分:1)

更改

$found_styist = $stylist;

$found_stylist = $stylist;

你需要一个更好的IDE人。简单的静态分析可以告诉您未使用的变量。