Engineer as a Lifestyle @tenkoma

What We Find Changes Who We Become -- Peter Morville著『アンビエント・ファインダビリティ 』

jobeetやってみた9日目〜11日目

不安定な機能テスト(9日目)

symfony test:functional frontend jobActions

このテスト実行が成功したりしなかったりする。原因はテスト実行時に生成されるjobsのレコードのcreated_atがほとんど同じ日付になっていることのようだ。そこで、目的のレコードがjobs一覧で常に最初に表示されるように修正する。

test/fixtures/jobs.yml

@@ -19,7 +19,8 @@ JobeetJob:
     is_activated: true
     token:        job_sensio_labs
     email:        job@example.com
-    expires_at:   '2010-10-10'
+    created_at:   '<?php echo date('Y-m-d H:i:s', strtotime('+1 day')) ?>'
+    expires_at:   '<?php echo date('Y-m-d H:i:s', strtotime('+31 day')) ?>'
 
   job_extreme_sensio:
     JobeetCategory:  design

有効期限までの日数がおかしい(10日目)

公開したあとで、求人情報を出す側から見るページに、有効期限までの日数が表示されるが、14,000日以上になっている。エポックからの日数だ。http://trac.symfony-project.org/ticket/7887にチケットがあがっていて、解決策が書いてあったので修正した。

lib/model/doctrine/JobeetJob.class.php

@@ -72,6 +72,6 @@ class JobeetJob extends BaseJobeetJob
 
   public function getDaysBeforeExpires()
   {
-    return floor($this->getDateTimeObject('expires_at')->format('U') / 86400);
+    return floor(($this->getDateTimeObject('expires_at')->format('U') - time()) / 86400);
   }
 }

リダイレクトのテストでこける(11日目)

で、リダイレクトのテストをすると、

  PHP sent a "warning" error at /opt/local/lib/php/symfony/test/sfTestFunctionalBase.class.php line 433 (call_user_func_array() expects parameter 1 to be a valid callback, class 'sfBrowser' does not have a method 'isRedirected')

というエラーが表示される。英語版は直っているようで、次のように修正すると動作する

test/functional/frontend/jobActionsTest.php

@@ -93,7 +93,7 @@ $browser->info('3 - Post a Job page')->
   with('form')->begin()->
     hasErrors(false)->
   end()->
-  isRedirected()->
+  with('response')->isRedirected()->
   followRedirect()->
 
   with('request')->begin()->