まずはこちらをご覧ください。
というわけで、Yahoo!ミュージックのサービスが2012年8月27日で終了するそうです。
投稿したコンテンツも削除されるとのことで完全な終了ですね。
まさかPing今秋終了のお知らせ...WSJ報道 : ギズモード・ジャパンやDVDリッピング違法化・違法ダウンロード刑罰化の著作権法改正が衆院で可決 | 家電 | マイナビニュースを受けてサービス終了するわけではないと思いますが、非常に寂しい限りですね。
Yahoo!ミュージックのトップページでも掲載されているのかな?と思ったら
ん???
Yahoo!ミュージックからご利用の皆様へ大切なお知らせというわけで、人によってはスルーされそうです。もしかしたら直前になって知る人も多いかもしれません。
Xデーは8月27日。
わたしはほとんど音楽を聴かないので影響は皆無ですが、これまで愛用してきたユーザーも多いはず。そういう方々へ最後のサービスがあっても良いかもしれませんがいかがでしょうかね。
2012年6月16日土曜日
Yahoo!ニュースの閲覧履歴をfacebookに投稿できるという新機能を爆速で試してみた
facebookから名前を「漢字で登録してね」と言われる TANAKA Kohji です。
Yahoo!ニュースの新機能のニュース見ましたでしょうか?
というCNETの記事。
なんかネガティブな反応のTweetとともに知ったのですが、なかなか物議を醸しそうな新機能ですね(笑)
というわけで試してみましたよ。
(ただしその時点でfacebookにログインしている必要があります)
まず、利用開始ボタンをクリックし、facebookとの連携を行います。
(なお、この時点でキャンセルを行えば何も設定されません)
facebookアプリを承認する場合はこの画面に記載された情報を良く読まなければなりません。
2の枠の位置に書かれた内容を見ることで、このアプリがfacebookで何ができるかを確認することが可能。
この場合は、あなたのfacebookに登録した情報のうち最も基本的なものへのアクセスとともに、あなたにかわって投稿する機能への承認確認です。
(前者はどのアプリでも表示されます。その他の情報をアプリが使用する場合は、この欄がずらずらと増えていきます)
Yahoo!ニュースのアプリの場合、自動投稿以上のことはできないようですので承認してすすむのですが、その前に、3の枠の箇所で、自動投稿されるニュースの閲覧履歴の公開範囲を指定できます。
このアプリの使い方を、自分の閲覧履歴としてのみ利用する場合は、ここを自分のみなどに変えると良いでしょう。
すべてのユーザーにすると、Yahoo!ニュースを閲覧するたびに、あなたのアクティビティとして表示されます。
図書館の貸し出し情報も、Yahoo!ニュースの閲覧履歴も個人情報ですから気をつけなくてはなりませんね(笑)
ふたたび記事ページを表示し、開始リンクをクリックして開始されます。
facebookの場合、自分の投稿がどう表示されているかは分かりづらいのですが、もっとも簡単に確認するのは、自分のページから、アクティビティを確認することでしょう。
他の人のウォールからも同様に確認できることと想像できます。
(まだ実際には確認できてないので分かりません)
また、個別に閲覧履歴の投稿を削除するのも、右上の×削除のリンクで行えます。(facebook上のアクティビティログからももちろん可能)
プライバシー設定のアプリの設定から行えますので、facebookのヘッダーの右端の▼からプライバシー設定をクリックし表示されるページで、広告、アプリ、ウェブサイトの設定の編集リンクをクリックします。
こんな画面になりますので利用しているアプリの設定の編集から
アプリを指定し編集もしくは×リンクから連携の削除(使用の中止)ができます。
さて、この新機能ですが。
いまいち理解しづらいのは、どのような利用シーンを想定しているかということ。
Yahoo! JAPANにとっての狙いは、facebook上に多くの記事を投稿してもらい、Yahoo!ニュースの閲覧数を高めること(および広告を多く見てもらうこと)ということになるでしょう。
しかし同様の機能を実装しているサイトをわたしはあまり聞いたことがありません。
ユーザーにとって閲覧履歴としての役割は果たすでしょうが、その場合自動投稿する必要性を感じません。
この機能を使うことにより、良い記事がシェアしやすくなるわけではないため、どうしてもサービス提供側がひとりよがりな機能を実装したという感が否めないのです。
もしfacebook上に多くの投稿を流すことが目的であれば、よりクリックしやすい、目立つシェアボタンを使用することのほうが効果があるような気がします。
アプリの使用を承諾させる上に、その後自動投稿のリンクをクリックさせるのは、ややSTEP数が多いですし。
スタートしたばかりでしょうから、意見を聞きつつ改善を図ろうという意図なのかも知れません。もしそうだとすると以前のYahoo! JAPANのやり方からの脱却であり歓迎するべきことですが。
この機能単体の評価は置いておくとして。
もし変わりつつあるというのであれば、今後も新しい機能が追加されていくということですから、今後の機能追加も注目したいところです。
Yahoo!ニュースの新機能のニュース見ましたでしょうか?
Yahoo!ニュース、読んだ記事をFacebookに自動配信できる新機能
ヤフーは6月14日、「Yahoo!ニュース」でFacebookへのアクティビティの自動投稿が可能になったことを発表した。この機能を利用することで、Yahoo!ニュースの記事を表示させるだけで「Yahoo!ニュースの○○の記事を読んだ」という自身のアクティビティが、自動的にFacebook上の友人のウォールに表示されるようになるという。
Facebookアカウントでログインしている状態で、Yahoo!ニュースの記事詳細ページなどに表示される「Facebookの友達に記事を知らせよう」枠の「利用開始」ボタンをクリックし、Facebookと連携することで利用できる。あらかじめ公開範囲を設定することも可能だ。
アクティビティとして自動投稿されたくないときは、一時的に自動投稿を停止することもできる。また、自動投稿されてしまった場合も、あとから削除できる。なお、ブログ/意見、企業トレンド、リサーチ、ランキングは、アクティビティ自動投稿の対象外となる。
というCNETの記事。
なんかネガティブな反応のTweetとともに知ったのですが、なかなか物議を醸しそうな新機能ですね(笑)
というわけで試してみましたよ。
Yahoo!ニュースで記事を閲覧し、自動配信の設定
Yahoo!ニュースの記事個別ページに移動すると、記事および配信元リンクの下に、当機能の表示が確認できます。(ただしその時点でfacebookにログインしている必要があります)
まず、利用開始ボタンをクリックし、facebookとの連携を行います。
facebookでアプリの設定をする
facebookに移動しアプリの承認を行う画面となります。(1の枠)(なお、この時点でキャンセルを行えば何も設定されません)
facebookアプリを承認する場合はこの画面に記載された情報を良く読まなければなりません。
2の枠の位置に書かれた内容を見ることで、このアプリがfacebookで何ができるかを確認することが可能。
この場合は、あなたのfacebookに登録した情報のうち最も基本的なものへのアクセスとともに、あなたにかわって投稿する機能への承認確認です。
(前者はどのアプリでも表示されます。その他の情報をアプリが使用する場合は、この欄がずらずらと増えていきます)
自分の意図に反して自動的に投稿されるスパム系のアプリもありますが、必ずこの画面での承認を必要とします。スパムと言われたからスパムアプリだと決めつけるのではなく、何をするアプリで、何ができるのかを確認し、承認するか承認しないかを決めましょう。思考停止はよくありませんね。
Yahoo!ニュースのアプリの場合、自動投稿以上のことはできないようですので承認してすすむのですが、その前に、3の枠の箇所で、自動投稿されるニュースの閲覧履歴の公開範囲を指定できます。
このアプリの使い方を、自分の閲覧履歴としてのみ利用する場合は、ここを自分のみなどに変えると良いでしょう。
すべてのユーザーにすると、Yahoo!ニュースを閲覧するたびに、あなたのアクティビティとして表示されます。
図書館の貸し出し情報も、Yahoo!ニュースの閲覧履歴も個人情報ですから気をつけなくてはなりませんね(笑)
自動投稿の設定
Yahoo!ニュースの閲覧が自動投稿されるのにはもう1ステップあるようです。ふたたび記事ページを表示し、開始リンクをクリックして開始されます。
facebook内での表示のされ方
その後Yahoo!ニュースの記事ページを閲覧するたびに、facebookへ自動投稿されるわけですが、facebook上ではどのように表示されるのでしょうか。facebookの場合、自分の投稿がどう表示されているかは分かりづらいのですが、もっとも簡単に確認するのは、自分のページから、アクティビティを確認することでしょう。
![]() |
| タイムライン |
![]() |
| アクティビティログ |
(まだ実際には確認できてないので分かりません)
自動投稿を中断する・履歴を削除する
自動投稿を中断するには、Yahoo!ニュースの記事ページより中断リンクをクリックすることで行えます。また、個別に閲覧履歴の投稿を削除するのも、右上の×削除のリンクで行えます。(facebook上のアクティビティログからももちろん可能)
アプリの使用をやめる
アプリの使用自体をやめ、使用開始前の状態に戻すことも可能です。(なお一度投稿したものは、アクティビティログから削除する必要はあります)プライバシー設定のアプリの設定から行えますので、facebookのヘッダーの右端の▼からプライバシー設定をクリックし表示されるページで、広告、アプリ、ウェブサイトの設定の編集リンクをクリックします。
こんな画面になりますので利用しているアプリの設定の編集から
アプリを指定し編集もしくは×リンクから連携の削除(使用の中止)ができます。
新機能についての所感
おおまかな使い方は以上です。あとは自動的に投稿されますので、個人情報のだだ漏れに気をつけつつ使っていきましょう。さて、この新機能ですが。
いまいち理解しづらいのは、どのような利用シーンを想定しているかということ。
Yahoo! JAPANにとっての狙いは、facebook上に多くの記事を投稿してもらい、Yahoo!ニュースの閲覧数を高めること(および広告を多く見てもらうこと)ということになるでしょう。
しかし同様の機能を実装しているサイトをわたしはあまり聞いたことがありません。
ユーザーにとって閲覧履歴としての役割は果たすでしょうが、その場合自動投稿する必要性を感じません。
この機能を使うことにより、良い記事がシェアしやすくなるわけではないため、どうしてもサービス提供側がひとりよがりな機能を実装したという感が否めないのです。
もしfacebook上に多くの投稿を流すことが目的であれば、よりクリックしやすい、目立つシェアボタンを使用することのほうが効果があるような気がします。
アプリの使用を承諾させる上に、その後自動投稿のリンクをクリックさせるのは、ややSTEP数が多いですし。
スタートしたばかりでしょうから、意見を聞きつつ改善を図ろうという意図なのかも知れません。もしそうだとすると以前のYahoo! JAPANのやり方からの脱却であり歓迎するべきことですが。
この機能単体の評価は置いておくとして。
もし変わりつつあるというのであれば、今後も新しい機能が追加されていくということですから、今後の機能追加も注目したいところです。
タイトルで爆速とあるけどとくに爆速ではないという意見がありそうですが、まああまり意味は無いです。はい。
2012年6月7日木曜日
虚構新聞がまた誤報、もとい正報。おーぷん2ちゃんねるオープン
まずは虚構新聞のこちらの記事
その裏には2ch運営者の側から名指しで転載禁止の通達を受けたという経緯があります。
そこで虚構新聞がそのことをネタにしているわけですね。
ただそこは、新聞記事に現実が追いつくことで有名な虚構新聞。
またまた単に他社よりちょっと早く記事がでただけという結果になってしまった模様。
(最近は日経新聞も頑張っていますね)
転載自由な2ch風掲示板が実際にオープンしたようです。
一見して2chと見紛うデザイン。
それどころか掲示板としての機能もほぼ同一です。
メインページには次のような記載が。
これなら安心ですね!
それどころかドメインの前にopenをつけるだけでアクセスできるらしいです。
http://uni.2ch.net/newsplus/ (ニュース速報+@2ch掲示板)
の場合は
http://uni.open2ch.net/newsplus/
になる模様
分かりやすいですね。
作成したのは satoru.net さんでした。
どうりで素早いわけですね。
転載自由の匿名掲示板「転載ちゃんねる」がオープン先日突然大手2chまとめサイトが相次いで休止や方向転換を発表。
匿名掲示板のコメントを抽出・編集した「まとめサイト」向けに、書き込みの著作権を放棄し「転載自由」をうたった新しい匿名掲示板「転載ちゃんねる」が5日オープンした。「村八分SNS」などで知られる、管理人の「ひらゆき」氏は「昨日の2ちゃんねる騒動で『転載禁止』と名指しされたブログ管理人も気軽に利用してほしい」と話す。
その裏には2ch運営者の側から名指しで転載禁止の通達を受けたという経緯があります。
そこで虚構新聞がそのことをネタにしているわけですね。
ただそこは、新聞記事に現実が追いつくことで有名な虚構新聞。
またまた単に他社よりちょっと早く記事がでただけという結果になってしまった模様。
(最近は日経新聞も頑張っていますね)
転載自由な2ch風掲示板が実際にオープンしたようです。
一見して2chと見紛うデザイン。
それどころか掲示板としての機能もほぼ同一です。
メインページには次のような記載が。
■open2chって?掲示板に投稿された記事は、自由に転載可能で、「コピペブログ等で商用、非商用問わず自由に利用でき」るとのこと。
open2chは転載自由な2ちゃんねる風掲示板ですよ。。。
すべての投稿はクリエイティブ・コモンズライセンスの元に
コピペブログ等で商用、非商用問わず自由に利用できます。
■2chに完全対応!
open2chはすべての2chの板に完全対応しています。。
2ch.netのドメインの前にopenを付けるだけで簡単に open2chにアクセスできます。
これなら安心ですね!
それどころかドメインの前にopenをつけるだけでアクセスできるらしいです。
http://uni.2ch.net/newsplus/ (ニュース速報+@2ch掲示板)
の場合は
http://uni.open2ch.net/newsplus/
になる模様
分かりやすいですね。
open2ch.net 虚構新聞にすっぱ抜かれたけど 『オープン2ちゃんねる』はじめてみました。転載自由な2ちゃん風掲示板です。 #2ch
— satoru.netさん (@satorunet) 6月 6, 2012
作成したのは satoru.net さんでした。
どうりで素早いわけですね。
2012年6月5日火曜日
プレゼン資料の作成やサイト製作で使うアイコンを探せる「Open Clip Art Library」
いっつも自分で使うのを忘れてしまいがちだけど便利なサイトをご紹介します。
プレゼン資料などで写真やアイコンを使用したいときは多いと思います。
前者はGoogleの画像検索やFlickrなどで再使用OKな写真を探すことでかないますが、アイコンやイラストはなかなか使いたいものはありません。
そこでこの OpenClipArt です。
このサイトは、再使用可能なクリップアートが多数掲載されています。
主な特徴としては
プレゼン資料などで写真やアイコンを使用したいときは多いと思います。
前者はGoogleの画像検索やFlickrなどで再使用OKな写真を探すことでかないますが、アイコンやイラストはなかなか使いたいものはありません。
そこでこの OpenClipArt です。
このサイトは、再使用可能なクリップアートが多数掲載されています。
主な特徴としては
- パブリックドメインで提供され再使用が可能(無料・修正可能)
- ベクター形式でも配布されているので加工が簡単
- オンラインで画像の加工が可能
という感じです。
使い方も簡単です。
画像をクリックすると下のような画面になり、View Imageボタンでsvg形式で表示(ダウンロード)、PNGボタンでpng形式で表示(ダウンロード)できます。
svgファイルは、Illustrator等で加工しても良いですが、凝ったことをしないのであれば、Edit Imageボタンで画像エディタを使えます。
また、たとえば iPhoneと検索 すると
このように80以上出てきました。
これらがすべてベクター画像で配布されているのです。
プレゼン資料やWebサイトのアクセントとして、ぜひ活用したいですね!
2012年6月4日月曜日
豊洲新市場についてのニュースサイト「豊洲新市場ニュース」を開設しました
株式会社ダイレクトサーチジャパンは、2015年3月までの開場をめざし計画が進んでいる「豊洲新市場(仮)」およびその周辺地域の情報をまとめたニュースサイトをリリースいたしました。
どうぞよろしくお願いします。
どうぞよろしくお願いします。
2012年5月31日木曜日
Yahoo! JAPAN のシークレットIDが素晴らしいので今すぐ使おう
今日も順調にお腹がいたい TANAKA Kohji です。
ニュースでではなく、たまたま知ったYahoo! JAPANの新しい機能、シークレットIDを試してみました。
この機能は簡単にいうと
ニュースでではなく、たまたま知ったYahoo! JAPANの新しい機能、シークレットIDを試してみました。
この機能は簡単にいうと
- ログインIDを変更できる
という機能。簡単すぎて一行でした。
Yahoo! JAPAN のようにIDがサービス内で表示される場合、ログインIDが既知なのでパスワードのみ何らかの手段で入手されるとIDを乗っ取られてしまいます。
パスワードを総当たりで攻撃するとか、破られやすいパスワードを利用している場合もありますね。
大抵の場合、複雑で、長い(たとえば20文字程度の)パスワードを使用することで防衛するわけですが、それでもIDが知られているので相対的にはリスクは高くなります。
そこで、シークレットIDで、ログイン用のIDを別にしてしまおうという発想ですね。
これ素晴らしいと思います。
思いつく限りで
- (当然のことながら)アカウントを乗っ取られる危険性が減る
- 既存の仕組み(通常のID)と共存できる
- システム的に実装難易度が高くない
- より重要なサービスの場合、シークレットID必須というようなことが将来的に可能になる
という感じ。
ひとつめはいわずもがな。
わたしも早速パスワード管理ソフトのパスワード生成機能で、パスワード以上に堅牢なIDに変更しました。(そこまでする必要はないかもしれませんが、せっかくなので)
ふたつめの共存というのはYahoo! JAPANのようなサービスには絶対に必要でしょう。
ユーザーを啓蒙しながら、徐々に移行させるということも可能なので、意識の高いユーザーから移行していけます。
利用を休止しているユーザーの存在を考えると移行率が100%になることはありませんが、逆に言えば100%にする必要がありません。
3つ目の実装難易度が低いというのもポイントです。
技術的な話をするとおそらく以下のような手順で既存のサービスに載せることになるでしょう。
- usersテーブルにsecret_idフィールドを追加
- Userを追加するときにIDをハッシュ化しsecret_idフィールドに投入
- UserがシークレットID機能を利用するときはsecret_idを変更
- ログイン時にはシークレットIDとパスワードでログイン
という感じでしょうか。既存のユーザーも一律変換してしまって良いですね。
既存のログインの仕組みと大差ないので実装が簡単です。
(シークレットIDを失念したユーザーへの対応はパスワードと同様のフローで必要)
(ハッシュ化されてるかは不明ですが、まあしておいて損は無さそうですね。追記:確認したら登録情報のページでシークレットID表示されてたのでハッシュ化はされてないですね、ログイン専用IDという表記がふさわしいところでしょうか[06/07])
(ハッシュ化されてるかは不明ですが、まあしておいて損は無さそうですね。追記:確認したら登録情報のページでシークレットID表示されてたのでハッシュ化はされてないですね、ログイン専用IDという表記がふさわしいところでしょうか[06/07])
そして最後の点。
Yahoo!カードのような、よりIDパスワードが重要な意味を持つサービスがあります。
このようなサービスのみ、シークレットIDの登録が必須というようにすれば、よりセキュアにサービス展開が可能でしょう。
良いアイディアとはこういう少ない手間で大きな効果を生むものを言うのだと思います。
シークレットIDの機能、良いですね。
サービス提供者にとってパスワードをハッシュ化しておくのは当然ですが、シークレットIDの実装をするのも当然になってくるかもしれません。
というわけでみなさんぜひ活用しましょう!
2012年5月30日水曜日
8時間耐久でPHPUnitについて勉強してきたよ
というわけで @mon_sat です!
PHPUnitについてのセッションということで気合い充分で参加してきました。
この8時間耐久シリーズはノマドのなかのノマドであり、安藤の中の安藤である@yandoさんが、無償で行っているセミナー(?)です。
コワーキングスペースのなかのコワーキングスペースである下北沢オープンソースカフェにて、午前中から夕方まで、みっちりPHPUnitについて学んできました。
PHPUnit使ってますか?
普段テストを書いていないとは言えませんが、胸を張って言えるレベルではないわたし。
独習でやってきていると基礎体力の点で充分とは言えないもの。今回はみっちりと筋トレしてこようと思い参加した次第。
午前中はPHPUnitのインストールが中心。
しかしそこはサービス精神旺盛の@yandoさん、普通にインストールするだけではありません。
PyrusというPEARの環境を整えるソフトの説明とそれを利用するメリットも教えてくれます。
わたしが理解したところによると、PEARでいろいろinstallしようとすると、全ユーザーに影響する形でインストールされてしまうという問題があるそうです。
自分の環境のみで特定のバージョンのPEARを使用したいといった場合など、普通にPEARを使用すると生じる問題を解決してくれるナイスなツールですね。
午後からいよいよ本格的にテストについてのお話。
まず簡単なclassのファイルを見て、それに対しテストを書いていきます。
基本的なPHPUnitによるテストの書き方は
という具合。
これでSmapleクラスのanyMethod()メソッドが実行され、期待する値(ここでは'正しい値')と比較されます。
assartEquals()というアサーションは == を用いた比較をおこない、同値であればめでたくpassedとなります。
実行は、コマンドラインから次のように行います。
複数のテストを書く場合に分かりやすくなりますね。
その後さまざまなアサーションの種類を教えてもらいました。バージョンアップのたびに増殖中とのこと。
$this->assertCount()とか。
また setUp() と tearDown() を利用して、共通処理の説明も。
上記のサンプルであれば。
という具合。これでテストメソッドがtestOther(), testAnother()のように増えていってもそれぞれのメソッド内でいちいちインスタンスを生成するという重複が避けられます。DRYですね。
ちなみにtearDown()の 'tear' は、涙の「ティア」ではなく、破るという意味の「テア」だそうです。
tear down で「建物等を取り壊す」という意味になるそう。
いやあ勉強になります。こんなこと自分で勉強してたら絶対に分からないですからね。
(この後、休憩中にmacのsayコマンドでいろいろ発音させて遊びました)
その後聞いたことも無い機能を次々と教えてもらいました。
まずはアノテーション。
テストメソッドの前に、指定された内容を書くことで、テストの実行を制限したり、特殊なテストを実行できるようになるとのこと。
他にもこんなアノテーションも。かなりDRYに記述できますね。(テストについてはDRYすぎるのも善し悪しだと思いますが、こういうのであれば何をテストしているかも分かりやすく活用したいところです)

@mon_sat2012-05-29 15:18:31
続いて、PHPUnitが行う気の利いた機能。
なんとPHPUnitではテスト実行前にスーパーグローバル変数を退避させ、テスト実行後に書き戻してくれるのです!
テストケース内で書き換えても影響は無いんだそう。毎度setUp()とtearDown()で $this->_session = $_SESSION; して $_SESSION = $this->_session; する必要はまったくないんだって。驚愕です。
で、ふと気になって、CakePHPのConfigure::read()できる設定はどうなんだろうと、CakePHPのソースを見てみると!

@mon_sat2012-05-29 15:36:33
案の定、同じように処理をしていました。
これは便利すぎますね。
この会では、実際に手を動かして何も無いところからテストを書いていったり、逆にテストが与えられclassを作っていくというプチテスト駆動開発を体験できたりと、非常に盛りだくさんの内容でした。
というわけでまた血になり肉になったようです。
@yando さんどうもありがとうございました!
PHPUnitについてのセッションということで気合い充分で参加してきました。
この8時間耐久シリーズはノマドのなかのノマドであり、安藤の中の安藤である@yandoさんが、無償で行っているセミナー(?)です。
コワーキングスペースのなかのコワーキングスペースである下北沢オープンソースカフェにて、午前中から夕方まで、みっちりPHPUnitについて学んできました。
PHPUnit使ってますか?
普段テストを書いていないとは言えませんが、胸を張って言えるレベルではないわたし。
独習でやってきていると基礎体力の点で充分とは言えないもの。今回はみっちりと筋トレしてこようと思い参加した次第。
午前中はPHPUnitのインストールが中心。
しかしそこはサービス精神旺盛の@yandoさん、普通にインストールするだけではありません。
PyrusというPEARの環境を整えるソフトの説明とそれを利用するメリットも教えてくれます。
わたしが理解したところによると、PEARでいろいろinstallしようとすると、全ユーザーに影響する形でインストールされてしまうという問題があるそうです。
自分の環境のみで特定のバージョンのPEARを使用したいといった場合など、普通にPEARを使用すると生じる問題を解決してくれるナイスなツールですね。
午後からいよいよ本格的にテストについてのお話。
まず簡単なclassのファイルを見て、それに対しテストを書いていきます。
基本的なPHPUnitによるテストの書き方は
という具合。
これでSmapleクラスのanyMethod()メソッドが実行され、期待する値(ここでは'正しい値')と比較されます。
assartEquals()というアサーションは == を用いた比較をおこない、同値であればめでたくpassedとなります。
実行は、コマンドラインから次のように行います。
$ phpunit tests/Sample.php
ちなみにこうすると、結果が緑(赤)のバーで表示され見やすくなります。
$ phpunit --colors tests/Sample.php
テストに失敗した場合は、失敗したというメッセージとともに「最後の引数で与えたコメント」が表示されます。複数のテストを書く場合に分かりやすくなりますね。
その後さまざまなアサーションの種類を教えてもらいました。バージョンアップのたびに増殖中とのこと。
$this->assertCount()とか。
また setUp() と tearDown() を利用して、共通処理の説明も。
上記のサンプルであれば。
という具合。これでテストメソッドがtestOther(), testAnother()のように増えていってもそれぞれのメソッド内でいちいちインスタンスを生成するという重複が避けられます。DRYですね。
ちなみにtearDown()の 'tear' は、涙の「ティア」ではなく、破るという意味の「テア」だそうです。
tear down で「建物等を取り壊す」という意味になるそう。
いやあ勉強になります。こんなこと自分で勉強してたら絶対に分からないですからね。
(この後、休憩中にmacのsayコマンドでいろいろ発音させて遊びました)
その後聞いたことも無い機能を次々と教えてもらいました。
まずはアノテーション。
テストメソッドの前に、指定された内容を書くことで、テストの実行を制限したり、特殊なテストを実行できるようになるとのこと。
他にもこんなアノテーションも。かなりDRYに記述できますね。(テストについてはDRYすぎるのも善し悪しだと思いますが、こういうのであれば何をテストしているかも分かりやすく活用したいところです)
テストの書き方(@は半角)
合計4回のテストが実行される
<?php
class DataTest extends PHPUnit_Framework_TestCase
{
/**
* @dataProvider provider
*/
public function testAdd($a, $b, $c)
{
$this->assertEquals($c, $a + $b);
}
public function provider()
{
return array(
array(0, 0, 0),
array(0, 1, 1),
array(1, 0, 1),
array(1, 1, 3)
);
}
}
#phpunit
合計4回のテストが実行される
<?php
class DataTest extends PHPUnit_Framework_TestCase
{
/**
* @dataProvider provider
*/
public function testAdd($a, $b, $c)
{
$this->assertEquals($c, $a + $b);
}
public function provider()
{
return array(
array(0, 0, 0),
array(0, 1, 1),
array(1, 0, 1),
array(1, 1, 3)
);
}
}
#phpunit
続いて、PHPUnitが行う気の利いた機能。
なんとPHPUnitではテスト実行前にスーパーグローバル変数を退避させ、テスト実行後に書き戻してくれるのです!
テストケース内で書き換えても影響は無いんだそう。毎度setUp()とtearDown()で $this->_session = $_SESSION; して $_SESSION = $this->_session; する必要はまったくないんだって。驚愕です。
で、ふと気になって、CakePHPのConfigure::read()できる設定はどうなんだろうと、CakePHPのソースを見てみると!
テストケースの中でConfigure::write()しても、他のテストケースに影響を及ぼさない
https://github.com/cakephp/cakephp/blob/master/lib/Cake/TestSuite/CakeTestCase.php
#CakePHP
#phpunit
https://github.com/cakephp/cakephp/blob/master/lib/Cake/TestSuite/CakeTestCase.php
#CakePHP
#phpunit
案の定、同じように処理をしていました。
これは便利すぎますね。
この会では、実際に手を動かして何も無いところからテストを書いていったり、逆にテストが与えられclassを作っていくというプチテスト駆動開発を体験できたりと、非常に盛りだくさんの内容でした。
というわけでまた血になり肉になったようです。
@yando さんどうもありがとうございました!
登録:
投稿 (Atom)



















