@ledsun blog

無味の味は佳境に入らざればすなわち知れず

テスト

Playwrightでリダイレクト後のHTTPリクエストをMockできない

ruby.wasmのテストコードを書いていました。 PlaywrightでHTTPリクエストをMockしているスクリーンショット cdn.jsdriver.netへのリクエストをMockして、レスポンスの内容をローカルファイルに置き換えています。 リダイレクトしたあとはMockできていないス…

NUnitをつかってテストコードを書くときのテストメソッド名の命名規則

NUnitのテストの命名規則をどうするとわかりやすくなるのか悩ましいのでまとめてみます。 describe と context がない NUnitにはRSpecとちがいdescribeとcontextに相当する機能がありません。 NUnitの公式のサンプルコードを見てみましょう。 https://github…

社内向けにパラメタライズドテストの話をしました

speakerdeck.com 自分がパラメタライズドテストの存在を知ったのは #TestingFrameworkMeeting に参加しました(1) - テスティングフレームワークの歴史 - @ledsun blog の頃だと思います。 読み返してみても一文字も出てこないので、記憶違いかもしれませ…

rspe-parametarizedでFizzBuzzのテストコードを書くと?

GitHub - tomykaira/rspec-parameterized: RSpec::Parameterized supports simple parameterized test syntax in rspec.を使ってみます。 require 'rspec-parameterized' require './fizzbuzz' describe 'FizzBuzz' do using RSpec::Parameterized::TableSyn…

DRYな気持ちでRSpecでFizzBuzzのテストコードを書くと?

素直な気持ちで書くとexpect(fizzbuzz 1).to eq '1'に似た文がたくさん出てきます。 DRYにしたくなったので、テストデータをテーブルで定義してグルグルっとアサーションを回します。 require './fizzbuzz' describe 'FizzBuzz' do it do [ [0, ''], [1, '1'…

素直な気持ちでRSpecでFizzBuzzのテストコードを書くと?

「1から100までの数に対して3で割り切れる数はFIZZ、5で割り切れる数はBUZZ、 3でも5でも割り切れる数はFIZZBUZZと表示する。それ以外の数は数字のまま表示する。」 describe 'FizzBuzz' do context '数が1より小さいとき' do it { expect(fizzbuzz 0).to eq…

パラメタライズドテストをサポートするテスティングフレームワークの実装に関する調査資料

Parameterized Test at XUnitPatterns.com At least one member of the xUnit family implements Parameterized Test at the Test Automation Framework(page X) level: MbUnit. Extensions are becoming available for other members of the family with DD…

パラメタライズドテストの紹介

社内向けにパラメタライズドテストを紹介するときにこんなストーリーで話そうかな?と考えたトークスクリプトの導入部分です。 今日はパラメタライズドテストを紹介します。 パラメタライズドテストとは何かというとテストコードの書き方です。名前がかっこ…

RailsのminitestのシステムテストをヘッドレスChromeで実行する

test/test_hlelper.rbで次のように設定してもヘッドレスモードになってくれませんでした。 Capybara.default_driver = :selenium_chrome_headless Capybara.register_driver :selenium_chrome_headless do |app| options = Selenium::WebDriver::Chrome::Opt…

WSL上のchromeをselenium-webriverで動かすつもりだった俺は

WSLとselenium-webdriver - @ledsun blog の続きです。 WSLからWindowsのChromeを動かそうとしました。 起動までは上手く来ました。 WSLからWindows上のChromeへの接続に失敗しました。 今回は、WSL上にChromeをインストールすれば問題なく動くだろうと試し…

WSLとselenium-webdriver

RailsのシステムテストをWSLで実行しようと、軽い気持ちで初めてみました。 意外と難しいです。 ポイント次の2点です WindowsのホストOSのChromeを動かそうとすると、ホストはlocalhostでは参照できない (GUIのない)WSLのChromeを動かそうとするときは、ヘ…

iPadのSafariのアドレスバーでURLを編集する方法

WebアプリケーションをiPadでデバッグしています。 Webアプリケーションを実行している開発PCに振られているIPアドレスが変わったときに、昨日デバッグに使ったタブを開いて アドレスバーの http://192.168.1.48:8000/dist/demo/development.html を http://…

Rails 4.2のtest-unitに苦戦する

Railsのバージョンを上げようと思って、3年ぶりくらいにRails 4.2のアプリケーションに触りました。 テストコードがあるのですが、test-unitです。 この組み合わせを触るのが久しぶりなので苦戦しました。 コミットログを見る限り、3年前に自分でテストコー…

AirDropを使ってコマンドラインからiPadで指定のURLを開く

開発中のWebアプリケーションのテストのiPadのSafariで開きたいです。 Webアプリケーションを動かしているMacBook ProにはDHCPでIPアドレスを設定しているためIPアドレスが変わります。 IPアドレスが変わると、iPadのSafariのアドレスバーのIPアドレスを変更…

<Repository (class)> yielded |nil| to block with

RSpecMockで見慣れないエラーが起こせました。 再現コードをメモります。 class Repository; end RSpec.describe do it do expect(Repository).to receive(:doc).and_yield(nil) Repository.doc {} end end 実行すると ~ rspec spec.rb F Failures: 1) shoul…

忍者式テストとは?

「忍者式テストの定義が知りたい」という意見を観測しました。 実践者の一人として、現時点の理解を記録します。 簡単に言うと? どういうときに向いている? どうやって実施する? 準備 最新のプロダクトをユーザー(の立場)で操作できる環境 手動テスト項…

とてか04に参加しました #toteka

d.hatena.ne.jp 椎葉さんの発表がぐっときた すごかった。 「失敗したチームメンバーがいた時に、笑ったらいかんよ」と説明すると言っていました。 「そこまでやるのか。やると意味があるのは想像できるけど、自分ではできない」という意味ですごかったです…

#TestingFrameworkMeeting に参加しました(1) - テスティングフレームワークの歴史

参加した時のメモです。 t-wadaさん Testing Framwork Meeting テスティングフレームワークの歴史 http://www.slideshare.net/everzet/bdd-in-symfony2/42 のスライドがベース。 有史以前 make checkのように、テストを自動化する風習はあった。 開発者はそ…

とてか03にて発表してきました #toteka

咳マニアの集うイベント とてか03 にて発表してきました。 発表は「忍者式テスト」についてです。 忍者式テストは2004年頃に咳さんが発表されてから(咳さんチーム以外の)実施者が一人しか観測されていないテスト(開発?)手法です。 私が忍者式テストに取…

忍者式テストをやってみた

忍者式テストを二週間くらいやってみた感想です。 忍者式を見習って毎日一時間手動受け入れテストの時間を確保してみた。「受け入れテストを徐々に増やしていく」感覚が新鮮。「受け入れテストはテストフェーズの最初に一度に作るもの」は思い込みだった。— …

なぜ大抵の単体テストがクソなのか?

James O Coplien のWhy Most Unit Testing is wasteより 最後のまとめを和訳 ツッコミ大歓迎。 Keep regression tests around for up to a year — but most of those will be system-level tests rather than unit tests. 回帰テストを一年間続けよう。ただ…

QUnitの概要

QUnitとは JavaScript用のTestingFrameworkです。 由来 jQueryのテスト用に作られ、今もjQuery、jQuery-UIのテストに使われています。 それ自体はjQueryに依存していませんが、テスト内でDOMを操作したりイベントを生成したりするのにjQueryを使うと便利です…