YAPC::Fukuoka 2017 HAKATA
こんにちは、pixivでPHPをやってる@tadsanです。好きなテスティングフレームワークはPHPUnitです! 好きな某CALOIDはテトさんです! みなさまはユニットテストを書いていらっしゃいますか? 今回はDocCommentとPHPUnitのデータプロバイダーをうまく利用してテストの記述を省力化する手法を紹介いたします ヾ(〃><)ノ゙ 提案手法 実装のDocCommentに「期待値」と「入力パラメータ」を記述することで、テストケースメソッドをいちいち追加せずともユニットテストできるようになります。また、入力(パラメータ)と出力(期待値)を明記することで、実行せずともコメントとしてわかりやすくする効果があります。 <?php /** * @route\example http://touch.pixiv.net/member_illust.php?mode=medium&illu
Luke Daley, Marcin Erdmann, Erik Pragt version 7.0 Very groovy browser automation… web testing, screen scraping and more Geb (pronounced "jeb" and originally a contraction of "Groovy web") is a developer focused tool for automating the interaction between web browsers and web content. It uses the dynamic language features of Groovy to provide a powerful content definition DSL (for modelling conten
はじめに# Property-based Testing というものを知ったので, Java でできるか試してみました. Property-based Testing とは# うまい日本語訳がないのだが, この記事では性質テストとする. ある集合のなかにある要素から取り出した値をつかって, 総当たりテストをして, 条件式がなりたつことを確認するテスト. よく数学の問題で, 任意の x について hogehoge がなりたつことを証明せよ みたいなのがあるが, hogehoge が 性質にあたるもの. 上手く説明できないので, 大量の参照リンクをはっておく. mog project: Scala: Property-Based Testing with ScalaTest and ScalaCheck ソフトウェアの品質を学びまくる:Property-based Testing, そして E
テストツールAdventCalendar 2015 18日目の記事です。 導入 先日、ランダムデータを作ってテストしたいケースがあり、ランダムデータ生成やProperty-based testingのライブラリを探しました。 jPopulatorに続き、junit-quickcheckを試してみることにしました。 readmeを読みながら試してみます 使い方 まず、もっともシンプルな使い方です。 import com.pholser.junit.quickcheck.JUnitQuickcheck; import com.pholser.junit.quickcheck.Property; import org.junit.runner.RunWith; import static org.junit.Assert.*; @RunWith(JUnitQuickcheck.class) pu
テストツールAdventCalendar 2015 11日目の記事です。 1日遅れてしまってすいません。 導入 先日、ランダムデータを作ってテストしたいケースがあり、ランダムデータ生成やProperty-based testingのライブラリを探しました。 そこで見つけたjPopulatorが簡単に使えて便利そうだったので紹介しようと思います。 使い方 まず、もっともシンプルな使い方です。 Populator generator = new PopulatorBuilder().build(); generator.populateBean(Person.class); populateBeanメソッドの引数に指定したクラスのデータが自動的に生成できます。 他のフレームワークに依存しておらず、たったこれだけの記述でランダムデータを生成できます。 また、フィールドにクラスがある場合も自動的に
Take very small stepsDon’t rush ahead with more code. Instead, add another example and let it guide you to what you have to do next. And don’t forget to take time to refactor your code before it gets messy. You should keep your code clean at every step of the way. View Documentation The BookEffective Testing with RSpec 3: Build Ruby Apps with ConfidenceThis definitive guide from RSpec’s lead devel
# -*- coding: utf-8 -*- from __future__ import absolute_import, unicode_literals # テストする関数 def add(a, b): return a + b # テストコード 関数名はtest_ から始めるのがpytestでのお作法 def test_add(): assert add(1, 1) == 2 assert add(1, 2) != 2 >>> $ py.test ../tests/test_add.py =============================================================================== test session starts ================================================
from dog_bark import dog_bark def test_dog_bark(): assert u'ワンワン!' == dog_bark('Japan') assert u'Bow wow!' == dog_bark('USA') となります。 実際にdog_bark関数を実行して、想定した結果文字列と直接比較するというコードです。 世に言うテストコード書こうぜ!という主張はこんな感じのコードを量産しようぜ! ということになります。特に難しいことはないですね。 テスト実行は例えばPythonのPytestなら $ py.test test_dog_bark.py でOKです。もしテスト関数を増やしたとしても勝手にファイル内のテストを認識して 実行してくれます。 ちなみにどの言語のどのテストフレームワークもこのくらいの機能はあります。 (コンパイルがいる言語は多少手間が増
使ってみる 例えば、100ユーザが同時にhttp://www.example.co.jp/ に1リクエストを発行した場合を想定。 ab -n 100 -c 100 http://www.example.co.jp/ 同時に100ユーザが、1ユーザーあたり10リクエストを発行した場合を想定。 -nには100 x 10 = 1000を指定します。 ab -n 1000 -c 100 http://www.example.co.jp/ 接続先にベーシック認証がかかっている場合。 -Aの後にベーシック認証ユーザとパスワードを:(コロン)で区切って指定します。 ab -n 100 -c 100 -A hogeuser:hogepass http://www.example.co.jp/ 同時接続数よりTotal発行リクエスト数が少ないとエラーメッセージが表示されます。 同時に100人で合計10リクエ
LaravelにはXcodeのような行ごとのステップ実行できるデバッガーはない。 なので、実行中にHTML上に表示させるかファイルへのログ出力を行うしか方法がない。 1.HTML上に出す方法 ベタにvar_dumpかprint_rを使う(PHPのお約束) 2.ログファイルに書き出す方法 Logファサードを使ってファイルに吐き出す。 【注意点】 ・ファサードなのでuse Logが必要 ・config/app.phpファイルのAPP_DEBUG属性(もしくは.envファイルの同箇所)をtrueにする ということで以下使用例。ここに詳細は出ています。 use App\Restaurant; use App\Http\Requests; use App\Http\Controllers\Controller; use Log; class AreaController extends Contro
1. The document discusses various social media and video sharing platforms and tools for integrating them, including YouTube, Twitter, Flickr, iTunes, and Facebook. 2. It mentions several services that allow embedding or sharing content between platforms, such as CDTube for YouTube, ZonTube for Amazon, and amz.ly for shortening Amazon URLs for Twitter. 3. Programming languages and APIs mentioned i
2016/12/18 第4回 日本Seleniumユーザーコミュニティ勉強会 で発表したSeleniumConf16 UKの参加報告資料です。 (発表者:石川真也@hifive Team, NSSOL)
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く