#25: fisher インストール、Ruby のテストを test-unit へ変更

やったこと(Done)

  • N 予備校 プログラミング入門 Web アプリコース
    • 第 2 章 準備しよう
      • 12. GitHub で Web サイト公開(同内容)

fish の環境を整える

fish のパッケージマネージャー fisher をインストールします。

$ curl https://git.io/fisher --create-dirs -sLo ~/.config/fish/functions/fisher.fish

指定している curl のオプションは以下の通り。

  • --create-dirs : ファイル保存時に必要なディレクトリを作成する
  • -s : silent mode。progress meter や error messages を表示しない
  • -L : Location ヘッダーによる異なる URL へのリダイレクトに対応する
  • -o : 取得したデータを stdout に出力するのではなくファイルに保存する
$ fisher add rafaelrinaldi/pure

pure という theme をインストールします。すっきりしていてよいですね。

$ fisher add decors/fish-ghq
# $ fisher add oh-my-fish/plugin-peco

fish-ghq ではデフォルトの selector が fzf になっているので環境変数 GHQ_SELECTOR を設定します。

$ set -g GHQ_SELECTOR peco
$ echo $GHQ_SELECTOR
peco

これで Ctrl + Gghq 管理下のディレクトリに移動することができます。

今まで関数を直書きで config.fish に書いていたのですが、移動直後の表示が完全ではないような感じだったので上記プラグインにおまかせすることにしました。

peco でコマンド履歴を検索する方についてはプラグインで提供されている関数と直書きしていた関数がほとんど同じようなのでそのままとします。

Ruby テスト

先日書いた FizzBuzz のテストを Minitest から test-unit に変更することにしました。

『パーフェクト Ruby』16 章に詳しく載っていたので公式ドキュメントと合わせて参照しつつ、Rake から実行する形で設定しました。

Rakefile

require 'rake/testtask'

Rake::TestTask.new(:test) do |t|
  t.pattern = 'test/**/*_test.rb'
end

task default: :test

テストは以下のようになりました。格好いいので Power Assert を積極的に使っていこうと思います。

require 'test/unit'
require './lib/fizzbuzz.rb'

class TestSample < Test::Unit::TestCase
  def test_fizzbuzz
    assert { fizzbuzz(1) == '1' }
    assert { fizzbuzz(2) == '2' }
    assert { fizzbuzz(3) == 'Fizz' }
    assert { fizzbuzz(4) == '4' }
    assert { fizzbuzz(5) == 'Buzz' }
    assert { fizzbuzz(6) == 'Fizz' }
    assert { fizzbuzz(15) == 'FizzBuzz' }
  end
end

こういうテスト用のディレクトリ、テストの雛形ファイルなどを Rake で生成してみたいですね。

わかったこと(Fact)

Ruby でのテスト自動化

ファイルの変更を検知して自動でテストを実行する仕組みを利用したいと思い、調べてみました。

Guard という gem がありますが、用途ごとにプラグインを利用するタイプのようで、そのプラグインが現在ではメンテナンスされていないものが複数含まれているようでした。

参考文献(References)

fish

Ruby

Git

その他

ブログでキーバインドの表記をどうするか迷いますね。つなぎをハイフン-にするか、プラス+にするか。モディファイアキーの表記をどうするか。あと、キーをキャピタライズするか。

例えば Ctrlg を同時に押すキーバインドの場合、Emacs 的な表記だと C-g と書きます。

でも一般的には Ctrl + G と書いてある方が読みやすいのではないだろうかと思ったり。このブログでもちょっと表記揺れがあります。Emacs のことを書いているときは Emacs 的表記で、それ以外は普通の(?)表記にしておきましょうかね。

そのうちやること(Someday)

  • [ ] RubyMine インストールしてみる?
  • [ ] Ruby を書くためのエディタの設定(Emacs
  • [ ] bash の設定ファイルに必要なエイリアスを追加する。