我是ROR的新手,并致力于为游戏提供Web服务的项目。我必须为该服务编写测试用例。
我如何针对每个模型和控制器案例进行说明。
我编写了以下内容以在db
中创建新用户 test "create" do
post(:create,
{
player:{
'player_name' => "usman",
'password' => 123,
'email' => 'ranasaani@gmail.com'
}
}
)
assert_select reponse.body
控制器代码
def创建 player = Player.create(params ['player'])
if player.valid?
# if creation successful, log the player in:
player_session = PlayerSession.create(
player: player,
session_token: ActiveSupport::SecureRandom.urlsafe_base64
)
render json: {session_token: player_session.session_token}
else
render json: {error: "Player name already exists."}, status: :unprocessable_entity
end
end
但是有一个错误
SyntaxError: xxx/players_controller_test.rb:5: syntax error, unexpected ':'
post(:create, {'player':{'player_name' => "usman", 'password' => 123, 'email' => 'ranasaani@gmail.com'}})
有没有指南,如何编写测试用例?
答案 0 :(得分:0)
我不是在评论你的测试方法,但在大多数情况下你的代码示例,语法更像是JSON而不是ruby哈希。使用:player => { :player_name => "usman", ... }
。您可以使用字符串'player'
或ruby符号:player
作为键。
render
来电的更完整示例:
render :json => {:error => "Player name already exists."}, :status => :unprocessable_entity
Ruby会将哈希转换为JSON本身。或者您可以通过调用.to_json
手动执行此操作。