2011-04-19 144 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