RSpecのインストールとEmacsへの設定

なんか前回の逆ポーランド記法のプログラムがだめだめなのでテストするためにRSpecを使ってみる。


まずはgemでRSpecをインストールする。

%sudo gem install rspec

あとはEmacsへの設定


rspecruby-mode.elとsnippet.el,mode-compile.elが必要みないなので
snippet.elと、mode-compile.elをダウンロードして~/elispに入れる

※snippetの設定はgoodpic.comさんの記事を参考に設定

あとは.emacsに以下の記述を追加

(require 'snippet)
;; snippet.el で、addrev に定型文を追加する
(add-hook 'ruby-mode-hook
          '(lambda ()
             (setq-default abbrev-mode t) ;; abbrev-mode をon
             (snippet-with-abbrev-table 'local-abbrev-table
                                        ("pu" . "puts")
                                        )
             ))


(require 'rspec-mode)

これで設定は完了のはず。


早速RSpec逆ポーランド記法のプログラムテストを書いてみる。

前回のやつと同じディレクトリにCalc_spec.rbを作成
んで、以下を記述

#!/usr/bin/ruby
# -*- coding: utf-8 -*-
require 'Calc'

describe Calc, "で計算してみる" do


  it "1 + 1 = 2 であること" do
    @calc = Calc.new
    @calc.do_it("1 + 1").should == 2
  end

  it "5 + 4 * 3 + 6 / 2 = 20 であること" do
    @calc = Calc.new
    @calc.do_it("5 + 4 * 3 + 2 / 6 ").should == 20
  end

  it "2 * (1 + 1) = 4であること" do
    @calc = Calc.new
    @calc.do_it("2 * (1 + 1)").should == 4
  end

  it "(1 + 1) * (1 + 1) = 4であること" do
    @calc = Calc.new
    @calc.do_it("(1 + 1) * (1 + 1)").should == 4
  end
  it "(1+1)*(1+1)=4であること" do
    @calc = Calc.new
    @calc.do_it("(1+1)*(1+1)").should == 4
  end
end

※ちゃんとdescとかit でtab押したら補完されるか確認 >> OK


ちなみにテスト結果はほとんどためだったのでちゃんと直しました


あとはZenTestとかと組み合わせたいけどまた今度。