TwitterAPIを使ってアプリケーションを作りたい!その4(の補足)


TwitterAPIを使ってアプリケーションを作りたい!その4のpaginateCountの意味がわからなかったんで、
ソースを見に行ってきました。



paginateソース


http://api12.cakephp.org/view_source/controller/#line-934 の一部


if (method_exists($object'paginateCount')) {
   
$count $object->paginateCount($conditions$recursive$extra);
} else {
    
$parameters compact('conditions');
 
    if (
$recursive != $object->recursive) {
      
$parameters['recursive'] = $recursive;
    }
$count $object->find('count'array_merge($parameters$extra));
}


・paginateCountが定義されていなかったら、勝手にfindされてしまうから
 独自でpaginateを作成した場合は、paginateCount定義する必要があるって事ですね
 だから、SQL Error: 1146: Table 'test.ts' doesn't existっていわれたんですね



そういえば、testケース作ってなかったので、作ります。手動です


・app/tests/cases/models/t.test.php


<?php 

//読み込むモデルを設定App::import('Model''T');

//$fixturesはデータベースいっさい使ってないので今回は記述しません。

class TestTestCase extends CakeTestCase {

    function startTest() {
        
//ここでモデルの読み込み 参考:http://d.hatena.ne.jp/foldrr/20090730/p2
        
$this->=& ClassRegistry::init('T');
    }

    function testTInstance() {
        
$this->assertTrue(is_a($this->T'T'));
    }

    function testPaginate(){
      
//search string
      
$a = array(
        
'q' => 'aaaa'
      
);

      //page
      
$page '1';

      //limit
      
$limit '20';     

      $result =  $this->T->paginate($a,null,null,$limit,$page,null,null);

        echo "tag:search.twitter.com,2005:11742445060<br />";
      echo 
$result['Feed']['Entry']['0']['id'];

      //id 1つ目に検索されたツイートが一致してなかったらOK?みたいな
      
$this->assertNotEqual($result['Feed']['Entry']['0']['id'],'tag:search.twitter.com,2005:11742445060');

      //search id 検索の時のIDが一致するかTEST
      
$this->assertEqual($result['Feed']['id'],'tag:search.twitter.com,2005:search/aaaa');

      //entry count ツイートがちゃんと20個取れてるかTEST
      
$this->assertEqual(count($result['Feed']['Entry']),'20');
    }

}


アクセスは http://localhost/cake/test.php の TestCases




コードの色ココで変えました。神!!
http://phpspot.net/php/codeconv/index.php