テスト

テストダブルとは何か

テスト

はじめに 単体テストを書く際、テスト対象のコードが外部のデータベース、APIサーバー、ファイルシステムなどに依存していると、以下のような問題が発生する: テストの実行が遅い テスト環境の準備が複雑 テスト結果が不安定(ネットワークエラーなど) 特定の状態やエラーケースの再現が困難 これらの問題を解決するために使われるのがテストダブル(Test Double)である。 テストダブルとは、テストに...

Golang テストダブル

契約テストとPactについて

テスト

概要 契約テストとPactについて調べたことをまとめる。 契約テスト(Contract Testing)とは コンシューマ(サービスを呼び出す側)とプロバイダー(サービスを提供する側)の間の動作をテストするテスト手法のことである。 コンシューマーとプロバイダー間での合意を契約として記述し、その契約に基づいてテストを行う。 コンシューマーが契約を発行し、プロバイダーはその契約に従ってテストを行う形式...

契約テスト Pact プロデューサー駆動契約テスト コンシューマー駆動契約テスト

Jestのスナップショットテストのデメリット

テスト

Jestのスナップショットテストを避けたほうが良いかもしれないデメリットについて雑メモ。 デメリット テストが脆くなってしまう スナップショットテストはUIの変更を簡単に検知することができる反面、テストの関心事ではないような変更(ex. class名のリネームだけで見た目は変わらない変更)であってもテストがFailしてしまう。 アサーションの期待が不明確 スナップショットテストではtoMatchS...

JavaScript jest

Web APIテスト技法

テスト

Web APIテスト技法を読んだ。 API設計のテストで5w1hを使って問いを考える話があったが、具体例が分かりやすく、示唆に富んでいた 現場のテスタビリティについて理解するフレームワークとして挙げられていた10個のPモデルが良かった。テスト戦略や計画を考える前提の整理に役立ちそう テスト計画の整備と文書化について書かれているテスト計画のフォーマット例も考えやすいシンプルなもので良かった。戦略と...

API

単体テストの考え方/使い方

テスト

単体テストの考え方/使い方を読んだ。 質の高いテスト設計の為に必要な考え方やアプローチがまとめられている。テスト手法に留まらないテスト設計の本であり、テスト関連の本の中でもあまり類を見ないものだと思われる。 良いテストは、リグレッションへの保護、リファクタリング耐性、フィードバックの迅速さ、保守性を備えているが、これらを全て満たすのは難しいため費用対効果を考える必要がある。本書はその考え方を示す実...

設計

CircleCIでphpunitの並列テストを行う

テスト

概要 CircleCIでphpunitの並列テストを行うアプローチについてかく。 PHPUnitの設定ファイルを生成するスクリプトを用意する #!/bin/sh basePath="/foo/bar" testFiles=$@ xmlFileStringData="" for file in $testFiles; do xmlFileStrin...

CircleCI phpunit

ソフトウェアテストの教科書

テスト

ソフトウェアテストの教科書を読んだ。 テストについての体系的な知識を得ることができる。 ...

Laravelでの機能テストの始め方雑メモ

テスト

概要 Laravelでの機能テストの始め方と簡単な使い方について紹介する。 入門レベルに限るのでより実践的な内容については触れない。 ※LTの元ネタ程度でメモくらいの内容。 対象 テストを書いたことがない人向け。 テストを書いたことがなくても機能テストであればアプリケーションの仕様さえわかっていれば比較的に誰にでも楽に何を書くのかわかりやすいと思う。 特にLaravelは機能テストで使える便利なA...

Laravel 機能テスト

Jestで始めるJavaScriptのテスト

テスト

概要 Jestを使ってJavaScriptのテストをかいてみる。 準備 jestとESModulesを使いたいのでbabel-preset-2015をインストールしておく。 (babel-jestはjestに用意されている。) npm install --save-dev jest babel-preset-2015 .babelrcの中身はこんな感じ。 { "presets&quo...

ES5 JavaScript babel babel-jest ESModules jest