タグ

Developmentとtestに関するkathewのブックマーク (59)

  • sizuhiko - Technote - CakePHPのコントローラテストで注意すること

    Friday, September 13, 2013 02:09:19 PM CakePHP Controller PHPUnit Test コントローラのテストは難解である とは言え、テストを書かないというのも何なのでテストを書くわけですが。 CakePHPではControllerTestCaseというテストケースクラスを継承してテストケースを書くのですが、Cakeのテストにモックが導入される前は testAction のオプションに PostsTestController のような PostsController を継承したクラスを作成し、内部的にそれを利用するように渡していました。 class PostsTestController extends PostsController { // モックしたい処理 .... } class PostsControllerTest exten

  • PHPUnit マニュアル – 第2章 PHPUnit 用のテストの書き方

    例 2.1 で、 PHP の配列操作のテストを PHPUnit 用に書く方法を示します。 この例では、PHPUnit を使ったテストを書く際の基的な決まり事や手順を紹介します。 Class という名前のクラスのテストは、ClassTest という名前のクラスに記述します。ClassTest は、(ほとんどの場合) PHPUnit_Framework_TestCase を継承します。テストは、test* という名前のパブリックメソッドとなります。あるいは、@test アノテーションをメソッドのコメント部で使用することで、それがテストメソッドであることを示すこともできます。テストメソッドの中で assertEquals() のようなアサーションメソッド (「アサーション」 を参照ください) を使用して、期待される値と実際の値が等しいことを確かめます。 <?php class StackTes

  • PHPUnitのつかいかた - 某Y家の人々

  • assertEqualsじゃなくてassertSameを使う - Do You PHP はてブロ

    最近填ったのが次のようなテスト。 <?php require_once 'PHPUnit/Framework.php'; class ATest extends PHPUnit_Framework_TestCase { public function testExecute() { $obj = $this->getMock('AnObject', array('execute')); $obj->expects($this->any()) ->method('execute') ->will($this->returnValue('1')); $this->assertEquals('00000001', $obj->execute()); } } AnObjectオブジェクトのexecuteメソッドを叩くと文字列の"1"が返されるのですが、実行するとテストにパスしてしまいます。 $ p

    assertEqualsじゃなくてassertSameを使う - Do You PHP はてブロ
  • PHPUnitで例外検知のテストを書く - tkzwtks-old.log

    PHPUnit使って例外検知のテストを書くときは,try-catchでいいらしい. http://old-journal.sooey.com/2005/11/10/35/ foo(); //例外発生 $this->fail('例外発生なし'); //例外が発生しなかったときはfail } catch (hogeException $e) { // 例外が発生したら恒真 $this->assertTrue(true); } } } 参考サイトとまあ同じですけどメモ用に

    PHPUnitで例外検知のテストを書く - tkzwtks-old.log
  • PHP でプライベート変数やメソッドをクラスの外から操作する

    エントリはPHP 5.3.2以上で正常に動きます。 何のためかというと、例えばテストのときに使います。 プログラムの構造を変更するコトを、リフレクションといいます。 リフレクションとは、 プログラムの実行過程でプログラム自身の構造を読み取ったり書き換えたりする技術のことである。 リフレクション (情報工学) | Wikipediaより。 PHPのリフレクションまわりのManualはコチラです。 このエントリの目次 1.このエントリで使うサンプルクラス 2.プライベート変数をクラスの外から操作する 3.プライベートメソッドをクラスの外から操作する 4.最後に 1.このエントリで使うサンプルクラス <php class HideyoshiToyotomi { //建前 //(書いてるだけでエントリでは特に触れません) public $statedReason = '信長さまー!'; //

    PHP でプライベート変数やメソッドをクラスの外から操作する
  • PHPUnitの使い方まとめ - Qiita

    「はじめに」の「はじめに」 2016年版としてマイグレーションしました。 特にこだわりが無い場合は、こちらを参照してください。 はじめに こんな感じで資料を作ろうとしていた草稿です。 文中のソースコードの正誤とかは見きれていません。 ツッコミとか有れば、よろしくお願いしますm( _ _ )m PHPUnitを使ったからといって、どんなソースコードもテストできる訳ではありません。 テストをし易いようにクラスを設計している必要があります。また、そのように設計していてもUnitテストに入れることの出来ない箇所は出てきます。Unitテストに入れることの出来ない箇所は出来ないと割り切らなければなりません。むしろ、どれだけのコードをUnitテストに入れることが出来るか? というのが設計者の腕の見せどころになるでしょう。 極論を言うと 「どんなクラスでも疎結合に実装していなければならない」 ということで

    PHPUnitの使い方まとめ - Qiita
  • PHPUnit マニュアル – 付録B アノテーション

    アノテーションとはメタデータを表す特別な構文のことで、 プログラミング言語のソースコードに追加することができます。 PHP そのものにはソースコードにアノテーションする専用の仕組みはありませんが、 ドキュメンテーションブロックに @アノテーション名 引数 のようなタグを書くことでアノテーションを表すという記法が PHP コミュニティ内で一般に使われています。 PHP では、リフレクション API の getDocComment() メソッドを使えば関数、クラス、メソッド、属性 それぞれのドキュメンテーションブロックにアクセスすることができます。 PHPUnit などのアプリケーションでは、 この情報をもとに実行時の振る舞いを設定するのです。 注記 PHP の doc コメントは、/** で始めて */ で終わる必要があります。 その他の形式のコメントで書いたアノテーションは、無視されます。

  • PHPならPhakeで快適モックライフ! - Qiita

    なぜPHPUnitを使わないか PHPでテストといえば、おなじみPHPUnit。モック・スタブも実装されており、PHPUnitさえ使っていれば困ることもなく…。 いえ、私は困りました。PHPUnitのモック、すこし記述が冗長になるのが欠点。CakePHPといったフレームワークを横断的にテストする際、テストコードが整然と並ばず複雑な入れ子になったとき、これはまずいと直感し他の技術を探し求めたのです。 そこで知ったのがPhakeフレームワーク。Javaのモック・フレームワーク"Mockito"が由来だそうです。 https://github.com/mlively/Phake すでにPhakeに関する記事はいくつか書いていますが、今一度まとめておきます。 CakePHPPhakeを導入するノウハウ CakePHPはテストクラスがPHPUnitに依存しているため、他のフレームワークの介入には工

    PHPならPhakeで快適モックライフ! - Qiita
  • QUnitの基本的な使い方 - but hopeful

    [追記] 2013/9/1 三年前の記事が未だに読まれているようなので、一応書いておきますが、あれから色々変わってもっと良いものも出ています。 QUnit でも別に問題はないですが、今から QUnit を使うよりは http://visionmedia.github.io/mocha/:title=mocha] とかの方が個人的にはお勧めです。とにかく、今は色々あるのでもっと別の選択肢調べて見ることを個人的にはおすすめします。別に QUnit は使わないほうが良いとは言いません。 JavaScriptのテスティングフレームワークはいろいろありますが、自分は今主にQUnitを使っているので、少し使い方をまとめて見たいと思います。 [追記]今回作成したソースを上げました。ninja.js QUnit とは QUnitはもともと、jQueryをテストするために開発されたJavaScript Un

    QUnitの基本的な使い方 - but hopeful
  • PHPUnit マニュアル – 第2章 PHPUnit 用のテストの書き方

    例 2.1 で、 PHP の配列操作のテストを PHPUnit 用に書く方法を示します。 この例では、PHPUnit を使ったテストを書く際の基的な決まり事や手順を紹介します。 Class という名前のクラスのテストは、ClassTest という名前のクラスに記述します。 ClassTest は、(ほとんどの場合) PHPUnit\Framework\TestCase を継承します。 テストは、test* という名前のパブリックメソッドとなります。 あるいは、@test アノテーションをメソッドのコメント部で使用することで、それがテストメソッドであることを示すこともできます。 テストメソッドの中で assertEquals() のようなアサーションメソッド (付録 A を参照ください) を使用して、期待される値と実際の値が等しいことを確かめます。 <?php use PHPUnit\Fr

  • CakePHP + PHPUnitでの TDD 超入門 - Qiita

    はじめに このエントリーは TDD AdventCalendar 2013 の第21目の記事です。 前日のエントリーは、tq_jappyさんによる「レガシーテストコード改善ガイド #TddAdventJp」でした。 わたしも Advent Calendar 初参加です。どうぞよろしくお願いします。 この記事では主に TDD とはなにか聞いたことはあるけど、実践したことはない、というような方を対象に、 CakePHPPHPUnit を使った TDD の進め方をご紹介したいと思います。 CakePHPPHPUnit はそれぞれ開発環境にインストールされて、使える状態になっていることを仮定します。 準備 まずは CakePHP インストール直後の、この画面が出るところから始めます。 何をテストするか 今回はテスト対象として、ソーシャルゲームでよくあるような処理を取り上げてみたいと思い

    CakePHP + PHPUnitでの TDD 超入門 - Qiita
  • Mochaを使ってJavaScriptのテストをブラウザで実行してみよう

    対象読者 JavaScriptの基をある程度理解している方 テストコードをこれから書こうと考えている方 JavaScriptのテスティングライブラリの分類 JavaScriptには、テストを記述するためのライブラリが多く用意されています。ライブラリには、大きく分けて「テスティングフレームワーク」と「アサーションライブラリ」があります。まずはこの2種類の違いについて説明します。 テスティングフレームワーク テストを記述する関数群を提供し、それらの関数を使って書かれたテストの結果を判定、集計した上で結果を表示する機能を持ちます。ブラウザでのテストの場合、ブラウザ上でグラフィカルにテスト結果を表示することもありますし、サーバサイドのJavaScriptであるNode.js向けにはコマンドラインで実行し、結果を表示する機能も持ちます。 アサーションライブラリ テスティングフレームワークは、テスト

    Mochaを使ってJavaScriptのテストをブラウザで実行してみよう
  • oukasei.com - oukasei リソースおよび情報

    This webpage was generated by the domain owner using Sedo Domain Parking. Disclaimer: Sedo maintains no relationship with third party advertisers. Reference to any specific service or trade mark is not controlled by Sedo nor does it constitute or imply its association, endorsement or recommendation.

    oukasei.com - oukasei リソースおよび情報
  • Jasmine使い方メモ - Qiita

    describe('add 関数のテスト', function() { it('1 + 1 は 2', function() { expect(add(1, 1)).toBe(2); }); it('1 + 4 は 5', function() { expect(add(1, 4)).toBe(5); }); it('10 + 2 は 12', function() { expect(add(10, 2)).toBe(5); // わざと失敗させている }); }); <!DOCTYPE html> <html> <head> <meta charset="UTF-8" /> <script src="jasmine.js"></script> <script src="jasmine-html.js"></script> <script src="boot.js"></script> <

    Jasmine使い方メモ - Qiita
  • JsUnit を使った JavaScript のユニットテスト - WebOS Goodies

    アプリケーションを開発する上で、避けて通れないもの、それがテストです。とくにブラウザごとの非互換性が大きい Web アプリケーションでは、念入りなテストが必要です。でも、テストはあまり創造的な作業ではないし、やったからといってなにか機能が増えるわけでもない。できるだけ手間をかけずに済ませたいところですね。 そんなわけで、日は JavaScript 用のテストフレームワークである JsUnit を利用したユニットテストの方法をご紹介しようと思います。 Ruby のユニットテストの記事でも書きましたが、ユニットテストによるテスト・ファースト開発は開発効率の面でも良い影響があります。まだ導入していない方は、ぜひこの機会に使ってみてください。 JsUnit について 今回利用する JsUnitJava 用の JUnit を参考にして作られた JavaScript 用のユニットテストフレーム

  • JavaScriptでスパイ、スタブ、モックなどのテストダブルを行う

    連載は、テストコードをこれから書こうと考えているJavaScript技術者を対象に、テストコードの意義から、テスト駆動開発、JavaScriptでのテストコードの書き方、継続的インテグレーションなどテスト全般にわたって解説します。また、原理原則だけでなくWhyから説明し、チームメンバーを巻き込みながら開発現場に活かせる考え方を総合的に解説します。第4回目の稿は、JavaScriptでのテストダブルの方法を、Sinon.jsというJavaScriptテストダブルモジュールを使って説明します。 対象読者 JavaScriptの基をある程度理解している方 テストコードをこれから書こうと考えている方 テストダブルとは テストコードを実行する際に、次のような課題に直面したことはないでしょうか。 Ajaxへのサーバへの問い合わせのような外部リソースも含めた処理のテストを行う必要があるが、テストデ

    JavaScriptでスパイ、スタブ、モックなどのテストダブルを行う
  • MySQLで簡単にランダムなテストデータを作成する方法 - Qiita

    MySQLで大量のダミーデータをテスト用に必要だったため、WEBをググって情報を集めてみました。 SQLだけで実現しているので使いやすいかと思います。 ##データ型別のランダムデータ作成方法 INT(1〜100の範囲)

    MySQLで簡単にランダムなテストデータを作成する方法 - Qiita
  • Androidのテスティングフレームワークを選定してみる - Qiita

    Androidで良い感じにテストするために、たくさんあるテスティングフレームワークを試して選定してみる。 環境 OS X Android Studio 1.0.2 テスト用サンプルアプリ 入力された値を足して表示するだけのサンプルアプリ(アクティビティを跨いだテストもしたいので2画面構成)。 リポジトリ https://github.com/shikato/AndroidTestSample 今回はこのアプリに対してテストする。 ロジックのテスト Android Testing Framework 標準でJUnitベースのAndroid Testing Frameworkが使える。 これまではJUnit3ベースだったけど、最近JUnit4がAndroid support libraryに含まれるようになり、JUnit4な記述でも簡単に書けるようになった。 JUnit4の導入 1. Andr

    Androidのテスティングフレームワークを選定してみる - Qiita
  • 「Mockery」を使ってサクッとPHPのテストを書いてみる

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