CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。
タグ検索の該当結果が少ないため、タイトル検索結果を表示しています。
弊社で毎月開催し、PHPエンジニアの間でご好評をいただいているPHPエンジニアのための勉強会 『PHP TechCafe』。2021年9月に開催されたイベントでは「PHPUnit の始め方」について語り合いました。 社外の有識者にも参加頂いてアドバイスを受けながらPHPUnitの使い方やテストコードの書き方を学びました。 今回はその内容についてレポートします。 rakus.connpass.com PHPUnitテストコードの書き方 setUpメソッド アサーション データプロバイダ アノテーション モック 結果の確認方法 テスト実行時に値が変わるケースの実装方法 イベント参加者からの質問コーナー おわりに PHPUnitテストコードの書き方 以下のShowNoteをベースに、「PHPUnit導入の目的」 ~ 「入門にあたり押さえておくべきポイント」などに ついてディスカッションしました。
基盤チームに所属している @okinaka です。 個人的には CakePHP とは長い付き合いで、もう14年以上になります。 BASE の事業においても10年間ずっと支えてくれている大変ありがたい Web フレームワークです。 以前から BASE の多くのコードはまだ古い CakePHP 2 (v2.10.24) 上で動作していることが課題になっています。 CakePHP 自身は順調に開発が継続されていますが、2系から3系へのバージョンアップはなかなか困難で二の足を踏んでいました。 そうこうしているうちに古いバージョンの2系は既に公式でのサポートは切れているうえに PHP 8.0 未サポートの状態です。 さすがにそのまま継続して利用するのは無理があるので、数年前から、より柔軟にシステムを構築するためのアーキテクチャ再設計をすすめています。 その成果は上がってきているのですが、単純なフレー
はじめに PHPUnit 6 にするきっかけ 地道な修正作業 クラスの namespace mt_rand と mt_srand グローバル変数の扱い non-numeric test phpunit6 ochiru アサーションをしていないテスト PHPUnit 6 にしてよかったこと そして時代は はじめに この記事は PHP Advent Calendar 2019 - Qiita 4日目の記事です。 昨日の記事は tzmfreedom さんの PHPでPHPを実装する というすごいタイトルの記事でした。 去年のPHPアドベントカレンダーで PHP 5.6 から PHP 7.2 にする話を書きました。 www.utakata.work この記事がめちゃめちゃ好評で、今でもたまに見られています。PHP 5.6 のサポートはとっくに終わったはずなのですが... ということで今回は PHP
Laravel Advent Calendar 2021 17日目の記事です。 僕自身が書いた経験のある範囲でPHPUnitでテストコードを書くときのTipsやサンプルコードをまとめます。 はじめに いきなりタイトルには直接関係ない小ネタを挟みます。 テスト関連のコマンド テストファイル作成 # tests/Featureに作成される php artisan meke:test SampleTest # tests/Unitに作成される php artisan make:test SampleTest --unit # ディレクトリを指定してファイル作成 # tests/Feature/User配下 php artisan make:test User/SampleTest # tests/Unit/User配下 php artisan make:test User/SampleTest
普段VagrantのVCCWを使ってWordPressのテーマ開発を行っていたが、 公式VCCWはPHP7.0とかなので、環境としてだいぶ古いVirtualBoxは遅い(気がする)手動で環境作るのがめんどくさい という点で微妙だなと思っていた。 そこで、今時っぽくDockerでWordPressの開発環境を作ろうと思い、奮闘した。 完成版のリポジトリを作ったので、環境構築だけしたい人はリポジトリのREADMEの通りにやると良い。↓ https://github.com/yheihei/wp-docker-template WordPressでテスト駆動開発をやるのに必要なもの テストコードを書かないとWordPressはグダグダになるという自論を持っている。 自分自身もテスト駆動開発じゃ無いと、ろくなコードを書けない体になっているのでテストができる環境が必須である。 WordPressのテ
背景 STORYではバックエンドのPull Request作成をトリガーにして、CircleCi上でTestを実行していました。Testの実行時間は11〜13分ほどでした。 常々、このTestの実行時間が長すぎて開発体験の質が落ちているような気がしていました。 Testの実行時間が長すぎると何が問題になるのでしょうか? 以下がSTORYチームがSlack上でしばしば発生していた会話です。 岩下「あ、Aさん!☓☓☓の件について、Pull Requestを作ったのでお手すき時にレビューお願いします!」 A「OKです、手が空いたら見ておきます〜」 〜〜〜1時間後〜〜〜 A「岩下さん、Pull Requestを見ようとしたら、TestがFailしているところがありました、確認してもらえますか?」 岩下「えっ、あっ、はい承知しました!」 この状況の問題点は、私がTestの実行結果を待たずにPull
PHPUnit 10 February 3, 2023 The PHPUnit development team is pleased to announce the immediate availability of PHPUnit 10. This release adds new features, modifies and removes existing functionality, and fixes bugs. PHPUnit 10 was scheduled to be released on February 5, 2021. Due to various reasons, including a pandemic, this was simply not possible. This does not mean that nothing has been achieve
アサーションメソッドはstaticで使うべきか、それとも非staticで使うべきか PHPUnit のアサーションの実装は、 PHPUnit\Framework\Assert およびそれを継承した PHPUnit\Framework\TestCase にあります。 アサーションメソッドは static 宣言されていて、あらゆるコンテキストから PHPUnit\Framework\Assert::assertTrue() などのように使えます。 また、 PHPUnit\Framework\TestCase を継承したクラスの中では $this->assertTrue() や self::assertTrue() などとしても使えます。 さらに assertTrue() のような形でグローバルなラッパー関数として使うことさえできてしまいます。 PHPUnit を使い始めたばかりの開発者の多くは
PHPでデファクトスタンダードなテスティングツール PHPUnit の7系バージョンが2020年2月7日でサポートが終了します。 ざっくりまとめ PHPUnit 7系(あるいはそれ以下)を使っているひとは、PHPUnit 8系へ乗り換えましょう PHPUnit 8系はPHP7.2以上が必須。7.1以下の人は先にPHPのバージョンアップを計画しましょう 2020年2月でサポート終了 phpunit.de github.com PR この記事は若手ものづくりコミュニティ Oysters のAdvent Calendar 2019にかこつけて書きました。 adventar.org サポート終了するとどうなる? PHPUnitはメジャーバージョンのリリースから2年がサポート期限で、既に4, 5, 6はサポート終了済み。現行は7系と8系で、7系はもうじきサポート終了です。 一般的にはサポートが切れる
PHP + phpunit + php-webdriver + docker-selenium でブラウザテスト ①環境構築PHPPHPUnitphp-webdriverdocker-selenium 目次 PHP + phpunit + php-webdriver + docker-selenium でブラウザテスト ①環境構築 PHP + phpunit + php-webdriver + docker-selenium でブラウザテスト ②テスト実行、エラー対策 概要 seleniumに自動でブラウザテストをしてもらって楽したい。 どうせならDockerで環境構築したい。 これを実現するために調べてわかったこと、詰まっていることをまとめました。 注意 phpunit/phpunit-seleniumというライブラリでもブラウザテストを実行できるようですが、やり方がわからなかったため深
たくさんのテストケースを抱えるプロダクトでPHPUnitを実行した際、下記のようなエラーが表示されることがある。 エラーメッセージ: $ ./vendor/bin/phpunit ... PHP Fatal error: Allowed memory size of 134217728 bytes exhausted これはPHPのメモリ使用量制限 (memory_limit) を超えてメモリを確保しようとしたためPHPがプログラムの実行を中断したことを示すエラーメッセージ。 対処方法 メモリをたくさん使っているテストケースを見つけていい感じに直すという方法もあるが、元々PHPはメモリどのぐらい使うかとかは些細なこととしてあまり気にしない文化だと思うので (メモリ10GB食うみたいなアホみたいな状態でない限り) メモリ使用量制限を引き上げて凌ぐのが良いと思う。 (1) phpunit.xm
初級者・中級者向けのユニットテストのサンプルは、 どんな言語を対象としたものであっても、 テストしやすいようなロジックに対してシンプルなテストをしているものばかりです。 データベースを扱う一般的なアプリケーションを考えると、これはまったく現実離れしています。 たとえば WordPress や TYPO3、あるいは Symfony で Doctrine や Propel などを使い始めるとすぐに、 PHPUnit でのテストがやりづらいことを実感するはずです。 データベースとこれらのライブラリが密結合になっているからです。 Note PHP の pdo 拡張モジュール、そしてデータベースごとの拡張モジュール (pdo_mysql など) がインストールされていることを確認しておきましょう。 これらがインストールされていないと、以下のサンプルは動きません。 きっと日々の業務やプロジェクトでも身
こんにちは、takaramです。 最近業務でPHPUnitを使ったテストを書く機会が増えてきました。初めはassertEqualsしか知らなかったわけですが、最近は適切なアサーションメソッドを選択できるようになってきました。そこで今回は数あるPHPUnitのアサーションメソッドの中から、一般的によく使いそうなものを独断と偏見で選んでご紹介します! なお、以下の内容は執筆時点の最新版のPHPUnit (v9.2.6) に基づいています。 PHPUnitのアサーションメソッド assertEquals assertSame assertTrue, assertFalse, assertNull assertCount assertStringStartsWith, assertStringEndsWith, assertStringContainsString assertRegExp ass
PHPUnitとは PHPUnitとはPHPのユニットテスト用のPHPライブラリであり、 PHPのクラス単位でテストを行う。 PHP Unitはどんなソースコードでもテストできるわけではない。 ある程度テストしやすい設計が求められている。 なるべくクラスは他のクラスと疎結合であるとテストしやすくなる。 PHP Unitを利用するからといって、テスト作業がすべて自動化されるわけではない。 PHP Unitも「テストの原則」則っている。 そのため、テストコードを書かねばならず、時間もかかる。 PHPUnitと手動テストは互いに得意、不得意があるので、 PHPUnitだけに頼るのでなく、場所によっては手動テストを行い、使い分けるのが良い。 PHP Unitのテストコードは複雑にならないようにしなければならない。 何をしているかすぐに分からないテストコードは、開発コストを高くする。 メリット 数値
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く