よって再度作り直したところ、autotestが反応しなくなった。
んで、調査した結果、
どうも最新のrspec-railsではTest::UnitとRSpecのautotestを
任意に使い分けができる模様。
- Test::Unit
- 普通に autotest で実行
- RSpec
- script/autospec で実行
これがわからなかった。
autotestで動かしてたから、いくらspecテスト書いても動かないわけだ。
# ruby -w
require 'rubygems'
require 'autotest/redgreen'
require 'autotest/snarl'
require 'win32/console/ansi'
Autotest::HOOKS.delete(:interrupt)
module Autotest::Snarl
def self.icon
{
:green => 'rails_ok.png',
:red => 'rails_fail.png',
:pending => 'rails_pending.png'
}
end
def self.snarl title, msg, img=nil
Snarl.show_message(title, msg, icon[img])
end
Autotest.add_hook :ran_command do |at|
results = [at.results].flatten.join("\n")
output = results.slice(/(\d+)\s+examples?,\s*(\d+)\s+failures?(,\s*(\d+)\s+pending)?/)
if output =~ /[1-9]\sfailures?/
snarl "FAIL:", "#{output}", :red
elsif output =~ /[1-9]\spending?/
snarl "PENDING:", "#{output}", :pending
else
snarl "PASS:", "#{output}", :green
end
end
end
class Autotest
def self.clear_hook
HOOKS[:red].clear
HOOKS[:green].clear
HOOKS[:pending].clear
HOOKS[:all_good].clear
end
end
#Autotest.clear_hook
require 'rubygems'
require 'win32/console/ansi'
Autotest::HOOKS.delete(:interrupt)
snarl "PENDING:", "#{output}", :pending
#Autotest.clear_hook
a=%w(1 2 3 4 5)
a.sort {|a, b| b<=>a }
puts a
=>[5, 4, 3, 2, 1]
a=>1
case Time.now.hour
when 7..11
puts "朝ですよ"
when 12..15
puts "昼だよ"
when 16..18
puts "もう夕方だよ"
when 19..21
puts "晩御飯の時間だよ"
when 22..24
puts "ふぁ~おやすみなさい"
else
puts "こんな時間になにしてるの?!"
end
ten=["",
"じゅ~",
"にじゅ~",
"さんじゅ~",
"よんじゅ~",
"ごじゅ~",
"ろくじゅ~",
"ななじゅ~",
"はちじゅ~",
"きゅ~じゅ~"]
one=["",
"いちっ",
"にっ",
"さんっ",
"よんっ",
"ごっ",
"ろくっ",
"ななっ",
"はちっ",
"きゅっ"]
(1..100).each do |i|
if (i % 3)==0||i.to_s=~/3/
num=i.to_s.rjust(2,"0")
print sprintf("%s%s",ten[num[0,1].to_i],one[num[1,1].to_i])
else
print i
end
puts "万円"
end
def test
p sprintf("Hello %s World", "Ruby")
end
def test
p sprintf("Hello %s World", "Ruby")
end
参考にさせて頂きましたサイト
クリボウの Blogger Tips
テキストボックスを作成する。
$lt;%= text_field 'text','field' %>
<input id="text_field" name="text[field]" size="30" type="text" />
:autocomplete=>on|off # オートコンプリートの設定
:style=>"color:red;" # style の指定
:maxlength=>n # 最大文字数
チェックボックスには2種類ある。
未選択状態も送信可能タイプの場合、
<%= check_box 'check','box' %>
<input id="search_kind_id" name="check_box" type="checkbox" value="1" />
<input name="check_box" type="hidden" value="0" />
params[:check][:box]
>> "1" # 選択時
params[:check][:box]
>> "0" # 未選択時
選択状態のみ送信タイプの場合、
<%= check_box_tag 'check','box' %>
<input id="check_box" name="check_box" type="checkbox" value="1" />
params[:check][:box]
>> "1" # 選択時
params[:check][:box]
>> nil # 未選択時
checkbox を複数選択するシチュエーションは少なくない。
checkbox を配列化する場合は、check_box_tag を利用する。(check_box タグも配列化できないわけではないが、しても意味がないため)
<%= check_box_tag 'check','box[]',@model.id %>
<-- value=1,2 を出力した例 -->
<input id="check_box" name="check_box[]" type="checkbox" value="1" />
<input id="search_kind_id" name="check_box[]" type="checkbox" value="2" />
params[:check][:box]
>> ["1","2"] # 複数選択時
params[:check][:box]
>> ["1"] # 1のみ選択時
params[:check][:box]
>> [] # 未選択時
ちなみに、check_box を配列化するには、
<%= check_box 'check','box',{:name=>"check[box][]"},@model.id %>
<input id="check_box" name="check[box][]" type="checkbox" value="1" />
<input name="check[box][]" type="hidden" value="0" />
params[:check][:box]
>> ["1","0"] # 選択時
params[:check][:box]
>> ["0"] # 未選択時
self.use_instantiated_fixtures = true # ここを true にする
$ rake db:test:clone_structure
001:
title: title001.
text: text001.
fixtures :contents
def test_001
assert_equal "title001.",contents('001').title
end
NameError: `@1' is not allowed as an instance variable name
def index
render_to 'index'
end