PHP

マニュアルには載っていないCodeceptionのコツ/TIPS

バージョン2で入った新機能などを紹介するエントリなど書く書く詐欺をしていたら年末になってしまいました。 というか2014年、2つめのエントリ。。。。そんな今年は ZF2 x Codeception Laravel4 x Codeception を中心にお仕事をしておりました。社内における…

Codeceptionにバグ修正をプルリました。

久しぶりの更新です。Codeception、メジャーバージョンアップが近いです。楽しみです。ここのところ、Zend Framework2 + Codeception で開発をしていました。 その中でバグを2件見つけてPRしたので、参考までに。 1. input[type=image]をクリックした場合に…

CodeceptionとAspectMockを使って和田卓人さんの現在時刻に依存するテストを書いてみた

TLで話題になっているCodeIQでの問題と解説はこちらです。これであなたもテスト駆動開発マスター!?和田卓人さんがテスト駆動開発問題を解答コード使いながら解説します~現在時刻が関わるテストから、テスト容易性設計を学ぶ #tdd|CodeIQ MAGAZINE大変丁…

PhalconアプリケーションをCodeceptionでテストしてみた

先日、Codeceptionが1.8にバージョンアップされました。1.8での変更点の詳細は本家サイトを見ていただくとして、注目すべきは以下の2点。 Phalcon Framework の正式サポート Environments という概念の追加 1つ目は説明不要と思いますが、2つ目は前回のエ…

(Codeception + Selenium2) Acceptance Testに複数種類のブラウザを利用する

久しぶりの更新です。CodeceptionのAcceptance TestにSeleniumを利用する場合のTIPSになります。 とある場所にて、Codeceptionのレクチャーをした際に、「IE, ChromeでもAcceptance Testは可能ですか?」という質問をいただきましたので、ここにまとめておき…

(Codeception + Symfony2) セキュアなページに対するFunctional Test

How to simulate Authentication with a Token in a Functional Test (current) - Symfony に書かれている内容をCodeceptionではどのように実現するか。 1. 専用のHelperを書く

HWIOAuthBundleを使ってSymfony2でOAuth認証を実装する(EntityUserProvider)

HWIOAuthBundleを使ってSymfony2でOAuth認証を実装するの続編です。今回はアプリ側にユーザー情報を格納するテーブルがあることを前提に、OAuth認証によって得られた情報と連携させてみます。実現したい内容としては、以下となります。 ログイン用のリンクを…

HWIOAuthBundleを使ってSymfony2でOAuth認証を実装する

しばらくCodeceptionネタが続く予定だったのですが、Symfony2 + OAuth認証で結構はまったのでシェアしておきます。FacebookやTwitterやGoogleなど、ソーシャルアカウントでログインする機能を作成したい場合、各ベンダーが提供しているAPIを利用することもで…

Codeceptionを使ってTDD Boot Camp 大阪 2.0/課題に挑戦してみた

しばらくはCodeceptionネタが続きます。社内でTDDの勉強会をする機会があり、課題としてTDD Boot Campのものを利用させていただきました。 どうせなら、ということでCodeceptionを使って挑戦してみました。ユニットテストのみで、あまりCodeceptionの旨味は…

Codeceptionを使ってみた(3) Functionalテスト

前回はFizzBuzzのUnitテストを書きました。前回までは単にFizzBuzzを生成できるようになったものの、 アプリケーションとしては成り立っていないので、 今回はコンソール出力するアプリケーションを作成し,そのテストを書いてみます。 また、コードカバレッ…

Codeceptionを使ってみた(2) Unitテスト

前回は Codeceptionを使ってみた(1) - think it over簡単なCLIアプリケーションをテストしてみようと思います。 前回の予告どおり、題材はFizzBuzz問題を取り上げてみます。今回はFizzBuzzを生成する箇所のUnitテストを書いています。 1. テスト対象の作成…

Codeceptionを使ってみた(1) 導入

個人的に大注目しているPHP用のテスティングフレームワークCodeception - BDD-style PHP testing.を試しています。 まだ日本語情報が少ないですが、以下のコードを見て一発で気に入ってしまいました。 am('testing framework'); $I->wantToTest('your web ap…

Symfony2プロジェクトをGitLabで管理してVagrantで立てたJenkinsでCIする(番外)

番外編です。 Jenkinsのチャートの文字化けを修正する チャートの日本語がいわゆる「豆腐」状態になってしまっていると思います。 http://shunirr.hatenablog.jp/entry/2013/01/10/175426 http://d.hatena.ne.jp/mallowlabs/20120316/jenkins_tofu を参考に…

Symfony2プロジェクトをGitLabで管理してVagrantで立てたJenkinsでCIする(6)

第6回です。 前回のおさらい イテレーション D: JenkinsでCIするJenkinでプロジェクトをビルドできるようになりました。 今回の内容 PHPMDやPHPCS等の各種ツールを導入し、Jenkinsと連携してみます。 いまどこ? イテレーション 0: 準備 タスク 0-1: 必…

Symfony2プロジェクトをGitLabで管理してVagrantで立てたJenkinsでCIする(5)

第5回です。 前回のおさらい イテレーション C: JenkinsをVagrantで構築する世に公開されているcookbooksをかき集めてJenkinsを立ち上げました。 今回の内容 いよいよプロジェクトをJenkinsに設定し、CIしてみます。 いまどこ? イテレーション 0: 準備 …

Symfony2プロジェクトをGitLabで管理してVagrantで立てたJenkinsでCIする(4)

第4回です。 前回のおさらい イテレーション B: PhingでプロジェクトをビルドするPhingビルドツールを導入し、PHPUnitをPhingから実行できるようになりました。 今回の内容 Vagrantを利用してJenkinsを構築します。 いまどこ? イテレーション 0: 準備 タ…

Symfony2プロジェクトをGitLabで管理してVagrantで立てたJenkinsでCIする(3)

第3回です。 前回のおさらい イテレーション A: Symfony2でプロジェクトをはじめるSymfony2のプロジェクトをGitLabで管理し、PHPUnitを単体で実行できるようになりました。 今回の内容 Phingビルドツールを導入し、PHPUnitをPhingから実行できるようにしま…

Symfony2プロジェクトをGitLabで管理してVagrantで立てたJenkinsでCIする(2)

第2回です。 前回のおさらい イテレーション 0: 準備必要となるソフトウェアのインストール等、進めるための準備をしました。 今回の内容 Symfony2のプロジェクトを作成し、GitLabで管理します。また、PHPUnitを導入してテストを実行できるようにします。 …

Symfony2プロジェクトをGitLabで管理してVagrantで立てたJenkinsでCIする(1)

Vagrantを触ってみた - think it overにも書いたように、 Web開発にまつわる開発環境を「モダンないい感じ」にしたい!!! という目的でこれまでいろいろと調査・実践してきました。その総集編を複数回に分けて取り纏めてみようと思います。題して、Symfony…

Vagrantとchef-soloでCentOS6.4にPHP5.4を入れる

調べても「どんぴしゃ!」な情報がなかったのでまとめておきます。 1.前提情報 OS Windows 7 Vagrant Vagrant version 1.0.7 利用するbox CentOS 6.4 x86_64 Minimal (VirtualBox Guest Additions 4.2.8, Chef 11.4.0, Puppet 3.1.0) 2.下ごしらえ boxを…

サブディレクトリでSymfonyを運用する際のjs, cssのパス

Symfony 1.X系のお話です。ちょっとはまったので。。。 サブディレクトリにフロントコントローラがある場合に、view.ymlに stylesheets: - /common/css/jquery/jquery.loadmask.css: { media: all } - /common/css/jquery/jquery-ui-1.8.16.custom.css: { me…

PHPからGoogle SpreadsheetをCSVで取得する

ちょっとばかし面倒な作業を自動化するため、 PHPからGoogle SpreadsheetをCSVで取得してみた。 username = $username; $this->password = $password; } protected function authenticate($…

iOS6にてPOSTによるAjaxがキャッシュされる!?

iOS6のSafariでWebサイトが正しく動作しない問題がかなり深刻・・ - NAVER まとめ等で報告されている事象の一部にぶちあたった。それは、、、 問題その1. AjaxのPOSTがキャッシュされる とある見積サイトにて、ユーザーの入力内容と最終的な見積金額が合わ…