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->T =& 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
。