2011-04-19 191 views
0
test "login logout user is not online" do 
get :login, :id=>1 
before = User.find(1).is_online 
get :logout, :id=>1 
after = User.find(1).is_online 
puts before 
puts after 
assert before == 1 
assert after == 0 

這個測試有什麼問題?

the output is 
1 
0 

<false> is not true. 
test/functional/users_controller_test.rb:22:in `test_login_logout_user_is_not_online' 
+0

什麼is_online定義爲?它是一個布爾字段嗎? – 2011-04-19 08:37:44

+0

之前和之後都不是字符串,對吧? – 2011-04-19 08:42:36

+0

is_online定義爲二進制,確定這是錯誤的,但爲什麼這不起作用? – 2011-04-19 08:47:12

回答

1

我會介意這裏的唯一問題是,之前和之後都是字符串:

irb(main):023:0> '1' == 1 
=> false 
irb(main):025:0> '1'.to_i == 1 
=> true 
+0

我是ruby/rails的新手,可能二元論也是布爾值。 – 2011-04-19 08:54:56