タグ

テストに関するt_yodoのブックマーク (13)

  • PHPUnitのテストコードを書くときによく使うイディオム - Qiita

    /** * @test */ public function 例外が発生することをテストする() { $this->expectException(ExceptionA::class); $classA = new ClassA(); $classA->method1ClassA(); } /** * @test * @expectedException ExceptionA */ public function 例外が発生することをテストする() { $classA = new ClassA(); $classA->method1ClassA(); } /** * @test */ public function 例外が発生しないことをテストする() { $classA = new ClassA(); try { $classA->method1ClassA(); } catch (Ex

    PHPUnitのテストコードを書くときによく使うイディオム - Qiita
  • 「Mockery」を使ってサクッとPHPのテストを書いてみる

    ごあいさつ はじめまして。アライドアーキテクツの石川と申します。 2月に入社してから早くも3ヶ月がたとうとしています。 私は前の職場ではほとんどjavaで開発していたのですが、 アライドに入社してからは主にPHPで開発をしています。 私の回では、その時その時に関心のある技術情報を発信していければ、と思っています。 皆様どうぞよろしくお願いいたします。 今の自分の課題はとにかくUnitテストを書くことなので、 今回はPHPのモッキングフレームワークである「Mockery」について書きたいと思います。 Mockeryって? padraic / mockery こちらで御座います。 static methodのモック化が出来たり、テスト対象のメソッド内部で生成されるインスタンスをモック化したり、 PHPUnitでやろうとすると一手間かかることをサクっと出来てしまいます。 Let’s インストール

  • 自動テストのfixtureを効率的に管理する方法

    アジャイル開発に取り組むチーム向けのコーチングや、技術顧問、認定スクラムマスター研修などの各種トレーニングを提供しています。ぜひお気軽にご相談ください(初回相談無料) みなさんこんにちは。@ryuzeeです。 僕がやっている案件(PHP)はもともとテストコードのないレガシーなプロジェクトで、それを改善するためにずっと動作を確認するための結合レベルの自動テストを増やしてきました。 そんな中で、僕のところではどうやってテスト用のfixtureを管理しているか事例として紹介したいと思います。 最初にコアとなるfixtureを用意するみんながたくさんテストを作る前にコアとなるテスト用のfixtureは用意しておきます。 さもないと、みんなが好き勝手にfixtureを作ってしまい、あっという間に混乱に陥ります。 プログラム体と同様に、DRYの原則で、同じようなテストデータを繰り返し作ってしまうよう

    自動テストのfixtureを効率的に管理する方法
  • CakePHP2でコントローラーのテストをする時の redirect を無視させない - ハウテレビジョンブログ

    ここ2週間ほど夏風邪でお粥とうどんしかべていなかったのに、なぜか体重が2キロ増えた津田(id:YTsuda)です。 フロントエンドを中心に開発全般何でもやっています。 今回はハマりどころの多い CakePHPのControllerのテストについて書きます。 環境 CakePHP2系で、PHPUnitを使ってテストをしているという前提で進めます。 redirect がスルーされる問題 Controller のテストを実行する時に、$this->redirect() がスルーされてしまう、という問題があります。 公式ドキュメントにも以下のような記述があります。 <?php class ArticlesController extends AppController { public function add() { if ($this->request->is('post')) { if (

    CakePHP2でコントローラーのテストをする時の redirect を無視させない - ハウテレビジョンブログ
  • Seleniumを使ったWeb UI自動テストシステムの構築でやったことまとめ - うなの日記

    Seleniumを使ったWeb UIの自動テストシステムを作ったので、やったこと・感想などをまとめてみます。 テスト対象 テスト対象は、AJAXなWebアプリです。 サーバーはREST APIを提供するのみで、UIは全てJavaScriptという構成。 サポートブラウザはIE7以降,Firefox3.6以降。(特定の組織内で使うものなので、Operaなどは未サポートです。) 使用したSelenium 2.x 系列を使いました。 WebDriverと統合されたあとのやつです。 言語はJavaを使用。 テストの目的 以下を目的としました。 機能追加/不具合改修でのデグレード防止 機能追加や不具合改修に伴う動作不正を検出し、デグレードを未然に防止する。 動作確認コストの削減による開発効率の向上 ブラウザごとの動作確認を自動テストを利用して行うことで、機能実装時の確認工数を減らす。 リリース前のリ

    Seleniumを使ったWeb UI自動テストシステムの構築でやったことまとめ - うなの日記
  • 1-byte.jp - CakePHPを使ったテスト駆動開発

    ブログ初ポストはCakePHPを使ったテスト駆動開発です。 CakePHPはユニットテストとしてSimpleTestに対応しています。 SimpleTestをインストールするだけで、モデルやコントローラ、シェル、ルーティングクラスなどのユニットテストが出来るようになります。 今日はこのCakePHPSimpleTestを使ってテスト駆動開発の流れを説明します。 ただ、僕自身テスト駆動開発を学んだのは去年のCake祭りなので、至らない点が多々あります。 もし何かあれば、コメントでご指摘ください。 今更感もありますが、この場を借りてCake祭りでテスト駆動の指導をしてくださった、@sizuhikoさんに感謝します。 開発手順 まずは開発手順を示します。少し細かいですが、テスト駆動では以下のような順で開発していきます。 設計する。 テストケースを書く。 テストケースをデバッグする。 コー

  • テスト時に全テーブルのfixtureを自動で読み込む | へびにっき

    環境:CakePHP 1.3 テスト時に誰もが一度は経験するであろう Missing Database Table Error: Database table users for model User was not found. というエラーを回避する方法です。 …… CakePHPのテストでは必要なfixtureを全て手動で列挙する必要があります。一つ二つなら良いのですが、モデルにアソシエーションを設定すると関連するテーブル全てが再帰的に必要になるので、非常に面倒です。 それならいっそ全テーブルを自動で読み込んでくれよ、ということで自動で読み込む方法を考えました。以下のクラスに示す2メソッドを CakeTestCase のサブクラスで定義してください(CakeTestCaseを独自の拡張クラスに置き換えるも参照)。 例えばdefaultデータベースに users, posts, tag

  • JUnit4をやってみよう

    最終更新日 : $Date: 2013-11-09 01:12:39 +0900 (Sat, 09 Nov 2013) $ 引っ越しました 引っ越しました。自動的に引越し先に遷移しない場合はこちらをクリックしてください。 https://kazurof.github.io/work/tryjunit4/tryjunit4.html

    JUnit4をやってみよう
    t_yodo
    t_yodo 2012/01/31
    大量のテストを一括で実行する方法(テストグループ)など。
  • WebDriverを統合したSelenium 2を使ってみる - CODESCRIBBLE

    Seleniumとは Seleniumとは、Webアプリケーションのテストを自動化するためのフレームワークです。Seleniumが提供するコマンドやAPIを用いることで、実際にWebブラウザを動かしながらWebアプリケーションの動作を検証することができます。これにより、従来手動で行っていたWebアプリケーションにおける回帰テストの多くを自動化することが可能になります。 Selenium 2(Selenium WebDriver)とは Selenium 2は、先月の8日に正式版がリリースされた、Seleniumプロジェクトの新しいプロダクトです。Selenium 2の最大の特徴は、やはりWebDriverとの統合でしょう。これについては、WebDriverの開発者であるSimon Stewart氏の話も含めた詳しい内容が以下の記事に載っているので、そちらを参照してください。 Selenium

    WebDriverを統合したSelenium 2を使ってみる - CODESCRIBBLE
    t_yodo
    t_yodo 2012/01/10
    Selenium2の分かりやすい使い方サンプル
  • Selenium 中級者になろう (変数+XPath+JavaScriptを,テストケース中で利用する方法) - 主に言語とシステム開発に関して

    回帰テストツール「Selenium」の中級 Tips。 初級の使い方については 今から3分で selenium の使い方を身に付ける (回帰テスト自動化) http://language-and-engineering.hatenablog.jp/entry/20081016/1224080409 selenium 主なコマンド一覧 http://language-and-engineering.hatenablog.jp/entry/20081016/1224123118 で入門のこと。 Seleniumのより便利な使い方として,下記で (1)変数の使い方 (2)XPathの使い方 (3)テストケース中へのjavascriptの埋め込み (4)Ajaxアプリのテスト方法 を学ぶ。 まず,まとめを掲載。そのあとで,実際のテストでどう役立つのか詳しく解説する。 まとめ 要素の指定方法まとめ

    Selenium 中級者になろう (変数+XPath+JavaScriptを,テストケース中で利用する方法) - 主に言語とシステム開発に関して
  • サービス終了のお知らせ

    平素より「PHPプロ!」をご愛顧いただき、誠にありがとうございます。 2006年より運営してまいりました「PHPプロ!」ですが、サービスの利用状況を鑑みまして、2018年9月25日(火曜日)をもちましてサービスを終了させていただくことになりました。 サービス終了に伴いまして、2018年8月28日(火曜日)を持ちまして、新規会員登録ならびにQ&A掲示板への新たな質問、回答の投稿を停止させていただきます。 なお、ご登録いただいた皆様の個人情報につきましては、サービス終了後、弊社が責任をもって消去いたします。 これまで多くの皆様にご利用をいただきまして、誠にありがとうございました。 サービス終了に伴い、皆様にはご不便をおかけいたしますこと、心よりお詫び申し上げます。 件に関するお問い合わせはこちらよりお願いいたします。

  • [ThinkIT] 第1回:Webブラウザを使ったテストツールSeleniumとは (1/3)

    この連載は、WebアプリケーションのテストツールであるSelenium(セレニウム)についてサンプルを用いながら概要と基的な使い方を解説していきます。連載第1回の今回は、Seleniumの概要について紹介します。 Seleniumとは、Webブラウザを使ってWebアプリケーションをテストするツールです。この「Webブラウザを使って」というのが非常に大きなポイントで、人が手でWebブラウザを操作する代わりにSeleniumがWebブラウザを操作してくれるのです。 そして単純に操作するだけでなく、例えばエラーメッセージが正しく表示されているかといった検証も行うことができます。つまり、今まで人手を必要としていたWebブラウザを使った試験が自動化できるものなのです。そのため数百項目もあるテストも、クリック1回で実施できます。 より重要なことは「自動化することによって試験を繰返し実施できる」こと

    t_yodo
    t_yodo 2009/02/11
    ブラウザ操作を伴うテスト自動化ツール。テストケースを自動生成する機能など、注目すべき点がある。ひょっとすると実践で使えるかも。
  • 【ハウツー】これはすごい! Web案件必須 Selenium - 人気急上昇中自動テストツール (1) 最近人気のSelenium | エンタープライズ | マイコミジャーナル

    Webアプリケーションのテストツールに「Selenium」がある。SeleniumはJavaScriptHTMLを使って、Webブラウザに自動でテストをさせようというもので、アジャイル開発におけるテストツールとして注目されている。 Seleniumとは SeleniumはWebアプリケーション用テストツール。JavaScript/DHTML/iframesをベースに構築されたテストツールで、Webブラウザから直接実行できるという特徴がある。要するに、目の前でWebブラウザが勝手にテスト工程を実施するわけである。見ていてなかなか気持ちがいい。対応しているプラットフォームやWebブラウザは多岐にわたる。代表的なプラットフォームは次のとおり。 Windows Internet Explorer 6.0 Mozilla Suite 1.6以上 Firefox 0.8?1.5 Seamonkey

  • 1