tanaka's Programming Memo

プログラミングについてのメモ。

PHPUnit

Laravel5.3 テストでテスト専用のデータベースを使う

(submitFormでは、フォームを指定すべきなのがわかりづらい例になっていたので修正 2016/11/1)Laravelアプリの開発時に、テストする時とそうでない時で、別のデータベースを使うようにする方法です。これをやっておけば、テスト時に好き勝手にデータベースを…

Laravel5.3でのテストのメモ

自分向けのメモです。LaravelにはPHPUnitによるテストの設定が組み込まれています。公式マニュアルで概要を確認して、データベースのチェックや、URLごとのテストについて調べました。5.2から5.3になる段階で、データベースとモックに関する記述が増えていま…

PHPUnit+Seleniumで、ページに要素があるかを確認する方法

(サンプルで " が抜けていたのを修正 2017/2/27)以下に、画面に要素があるかどうかを判断するサンプルコードを示します。 setBrowser('firefox'); $this->setBrowserUrl("http://www.google.co.jp"); } public function testValidElement() { // ページ開始 …

phpunit.xmlファイルでグループを指定する

実行する対象のテストを、@groupアノテーションで設定したグループで指定するphpunit.xmlファイルの書き方です。sampleTestという名前で、phpunit.xmlと同じ場所にあるtestファイルのうち、targetGroupという名前を設定したグループのみをテストするには、以…

PHPUnitによるデータベース操作のテスト

ユーザーを管理する操作をテスト駆動開発の手法で作ってみるために調査しました。PHPUnit マニュアル – 第8章 データベースのテストデータベースのテストにはPHPUnit_Extensions_Database_TestCaseを継承して行うとあります。その場合はSeleniumとの同時テス…

PHPUnit_Seleniumでアラート(Alert)を扱う

PHPUnit_Extensions_Selenium2TestCaseクラスに定義されているメソッドを利用する。 $this->acceptAlert() アラートのYESやOKを押す $this->alertText() アラートに表示されている文字列の取得 $this->dismissAlert() アラートのCANCELを押す $this->keys(文…

PHPUnit_Extensions_Selenium2TestCase_Element_Accessorのusingのリスト

PHPUnit_Extensions_Selenium2TestCase_Element_Accessorのusingメソッドでエレメントを検索する際に利用できる$strategyのリストを以下にまとめる。情報源はphpunit-bundle/Session.php at master · p/phpunit-bundle · GitHub 検索対象 $strategy 対応する…

PHPUnitとSeleniumのテストでエラー

今まで動作していたPHPUnitとSelenium Serverでのテストが以下のエラーを発生するようになった。 PHPUnit_Extensions_Selenium2TestCase_WebDriverException: Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms. Firefox console output: De…

PHPUnit_Seleniumでスクリーンショット(動作確認)

画面のレンダリングが成功しているかを確認するために、必要な場面でスクリーンショットを保存したい。 方法 $this->currentScreenshot()でPNG画像を文字列化したものが得られる。 $this->currentScreenshot()の文字列を、PHPのfile_put_contents()関数を使…

PHPUnit_Selenium 書籍のJavaのサンプルをPHPUnitで書く

実践 Selenium WebDriver作者: Satya Avasarala,Sky株式会社玉川竜司出版社/メーカー: オライリージャパン発売日: 2014/09/18メディア: 大型本この商品を含むブログ (5件) を見るとても分かりやすい良書。JavaからWebDriverを操作する方法がすらすら分かる。…

Selenium+PHPUnit(2016/5/22修正)

PHPUnitとSeleniumを連携させて、サーバーやブラウザ上で動作テストができるようにする。資料はPHPUnitの公式サイトにあるので、それに従ってmac上にPHPUnit+Seleniumの環境を構築して動かす。(2016/3/7時点の最新の情報に修正しました) 情報源 PHPUnit マニ…

PHPUnitを使ったテスト駆動開発(TDD)

TDDとは、プログラムを開発する際に、入出力の動作を決めて、先にテストプログラムを用意してから実際のプログラムを開発する手法。データベースから取得したレコードをシリアライズして、指定のファイル名に保存するという簡単な機能を実装するのをTDD的な…