测试控制器未传递参数

时间:2016-05-31 09:10:50

标签: ruby-on-rails ruby

我目前在轨道上处理ruby的测试用例,并意识到我传递的参数没有传递给我的控制器。

这是我的控制器的测试用例

  test "should get addUser" do
  user_info = User.create_user("TEST1","TEST1")
  assert_equal(user_info,true,"Assert Failed")

User.create_user包含

def self.create_user(username,password)
    if username == "" || password == "" and username == nil || password == nil
        register = User.new({:username => username,:password => password})
    end
    return register.save
end

结果还显示了2个断言,但我只声明了一个断言。

1 个答案:

答案 0 :(得分:0)

问题在于你的条件:

if username && password && !username.empty? && !password.empty?

unless ['', nil].include?(username) || ['', nil].include?(password)

两者都有效。

最后,在Rails中,如果多个空格也不是有效值,则可以使用blank?(对于用户名和密码通常是个好主意):

unless username.blank? || password.blank?

-

if username == "" || password == "" and username == nil || password == nil

只有在(用户名或密码为空)和(用户名或密码为零)时才会通过,所以只能使用这些组合:

{ password: '', username: nil }
{ password: nil, username: '' }

关于2个断言,我们需要更多代码来帮助(至少在这里测试结束时缺少结束)