Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
前置き 地味にこの記事が読まれ続けているみたいなのですが、内容がよい加減に古くて心苦しいので、もうちょっと現代的な内容にマイグレーションしたものを投稿しようと思います。当時と違ってQiitaにもよい記事増えているのに今更感あるのですが、あの記事に辿りついてしまった人のため……という感じで書いておきます。 大前提 PHPUnitを使ったからといって、どんなソースコードもテストできる訳ではありません。テストをし易いようにクラスを設計している必要があります。また、そのように設計していてもUnitテストに入れることの出来ない箇所は出てきます。Unitテストに入れることの出来ない箇所は出来ないと割り切らなければなりません。むしろ、どれだけのコードをUnitテストに入れることが出来るか? というのが設計者の腕の見せどころになるでしょう。極論を言うと 「どんなクラスでも疎結合に実装していなければならない
前回 QiitaにReact.js の React.js の公式Tutorial を gulp を利用して簡単に実行できる環境を作って、ES6も試した で公式TutorialをECMA2015(ECMA6)を利用して書き直しを行ったのですが、ReactといえばFlux、Flux といえばRedux ということで、流行りのRedux を利用して記述したらどうなるのかを試してみました。 また 同じく流行りのテスト環境である Mocha + power-assert を利用して、テストを追加してみました。 React および Redux はテストも非常に行いやすいのを体感しました。 前回の続編として、以下GitHub で公開しています。 https://github.com/ma-tu/react-babel-gulp-browserify-tutorial/tree/es6-redux Rea
2021年2月26日追記 最近は PCOV が良いらしいです。 PCOV は PHPUnit8 以降の対応なので、この記事は PHPUnit8 未満の方向けです。 2021年8月2日追記 が、phpdbg と比べてカバレッジが下がってしまう場合もあるようです ユニットテストの評価に、コードカバレッジを使用することは、よくあると思います。 従来より、 PHPUnit にはコードカバレッジ解析機能が実装されており、 HTML をはじめとするいくつかの形式で、レポートを出力可能です。 PHP5 では、 xdebug が提供するステートメントカバレッジ機能が利用されてきましたが、これが大変遅く、1100 Assertions ほどの EC-CUBE3 のカバレッジを出力するまで、2時間以上かかります。 しかも、速い CPU にしても大して速くならないのです。 Windows 環境では特に遅くなるら
追記: 2016/01/31 2016/01/18ごろにWorkflowプラグインは、Pipeline プラグインに改名されたようです。 https://wiki.jenkins-ci.org/display/JENKINS/Pipeline+Plugin 自動テストでデータベースなどのリソースの問題で並列実行ができないときに、Dockerを使ってリソースを用意して並列化する方法をまとめました。 なるべく実践的な環境を想定して以下のことができることを目標とします。 GitLabと連携してマージリクエストに対してテストを実行する 手動でブランチ名を指定してジョブを実行できるようにする 1つのテストジョブを分割して並列処理できるようにする 構成 構築した環境の構成は以下の通りです。 OSX Docker v1.9.1 Jenkins v1.625.3 dockerイメージを使用 https:/
Ruby on Rails Tutorialのエッセンスを自分なりに整理してみる7 Railsにおけるリンクの記述方法とそのテスト http://qiita.com/kidachi_/items/d704e7eb63513c3831ae の続き。 Ruby on Rails Tutorial(chapter5) http://railstutorial.jp/chapters/filling-in-the-layout#sec-layout_exercises Rspecのリファクタリング 指定のページが指定の要素を持っている(もしくはいない)かをチェックするテストコード。 require 'spec_helper' describe "Static pages" do describe "Home page" do it "should have the h1 'Sample App'"
前置き Scalaにおける最適なDependency Injectionの方法を考察する 〜なぜドワンゴアカウントシステムの生産性は高いのか〜 Minimal Cake Pattern のお作法 これらの記事で mix-in injection 1 を導入し、プロダクション用インスタンスの構築方法を解説しましたが、テスト用インスタンスの構築については言及がありませんでした。所詮テストだしどう書いてもいいのですが、短く綺麗に書くための tips も紹介します。このパターンはいろんな人によりだんだん洗練されていったもので、まだ改善の余地があるかもしれません。 ここでは Scala + Scalatest + Mockito の利用を想定します。別の言語・フレームワークでも使い回せる部分があるかもしれないし、ないかもしれません。 テストの書き方 まずは簡単に実装例を示します。 case clas
"babel-core": "^6.3.26", "babel-loader": "^6.2.0", "babel-preset-es2015": "^6.3.13", "babel-preset-react": "^6.3.13", "chai": "^3.4.1", "istanbul-instrumenter-loader": "^0.1.3", "karma-coverage": "^0.5.3", "karma-mocha": "^0.2.1", "karma-mocha-reporter": "^1.1.4", "karma-phantomjs-launcher": "^0.2.2", "karma-phantomjs-shim": "^1.2.0", "karma-sourcemap-loader": "^0.3.6", "karma-webpack": "^1.7.0",
ゴール エディタ内でテスト実行、結果表示を完結(画像右側)。 失敗ケースの宣言行にマーク(画像左側)。 マウスオーバーによるメッセージの表示。 できていないこと アサーションに失敗した行番号の情報取得、紐付け。 不具合? たまにテスト実行が行われず、マークだけ消えることがある。 Outputを見れば一目瞭然なので気付くことはできる。 想定 Visual Studio CodeとExUnitの基本的な使い方を知っており、セットアップ済み。 エディタ内で完結する形で、ExUnitとの連携を試してみたい人向け。 所要時間3~5分。 書いた人の環境 Windows 10 Visual Studio Code 0.10.6 Elixir 1.1.0 Web Installerでセットアップ。 前提 プロジェクトのルートディレクトリで $ mix test が正しく実行できる。 $ mix new で
// Karma configuration // Generated on Mon Dec 21 2015 12:22:32 GMT+0900 (JST) module.exports = function(config) { config.set({ // base path that will be used to resolve all patterns (eg. files, exclude) basePath: '', // frameworks to use // available frameworks: https://npmjs.org/browse/keyword/karma-adapter frameworks: ['mocha', 'browserify'], // list of files / patterns to load in the browser f
<この記事は「Money Forward Advent Calendar 2015」の12日目の記事です> Railsでアプリを書いたり、RubyでRailsを書いたり(主にBug Fix)しています。金子です。 前書き RailsのCIではRailsのmasterとRubyのtrunkでテストが回っています。普段、趣味でこのテストを眺めていて、テストが壊れたりすると原因を調べてFixしたりしています。 RubyにもRailsにも毎日新しい機能が入っていますので、それらが衝突して思わぬバグが生まれることもあります。今年見ていて面白かったバグを3つほど紹介したいと思います。 第3位 突然の大量Error 例えばテスト結果はこちら。 1) Error: BelongsToAssociationsTest#test_with_select: ArgumentError: wrong number
DBUnitを使用した結合試験データの積み込み 先日JBehaveを使った試験の自動化について書きましたが(JBehave+Maven+Eclipseを使った結合試験の自動化)、データベースの準備はテキストでやっていくのはきついので、DBUnitでデータを積み込みます。 準備 データをExcelで定義する 以下のルールを守るだけです。 1ファイルに複数のテーブルの情報を定義できるため、シナリオ試験のデータをまとめるのにちょうど良いです。 1テーブル1シート 1ファイルには複数のテーブルの情報を定義できる シートの名前はテーブル名にする 1行目はカラム名を記入する xls形式で保存 例)Excelでのデータ定義 pom.xmlの修正 DBUnitを使うための依存情報を追加します。 apache poiはかならず3.2を使います。 ... <dependencies> ... <depende
ネットの検索結果でチラチラとは見ていたのですが、この度初めて自分でもDBUnitを使ってみました。ネット上のサンプルコードをほとんどそのまま実行しただけですが、私の手元でも簡単にユニットテスト用のDBとデータを準備することができました。 従来、H2 DatabaseはRunScriptで初期化用のスキーマを流し込んでいたのですが、これならJDBCドライバを選ばない気がします。 ※ 他のJDBCドライバでH2 DatabaseのINIT=RunScript相当の機能が可能なのか知りません。 ##環境 DBUnit 2.5.1 JUnit 4.12 ユニットテストのコード(パクリですが) 以下のような感じです。Excelファイルもデータソースとして使える点は、仕事でプログラムを作る人にとってかなりのアドバンテージな気がします。 import java.io.File; import org.j
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く