我是测试rails应用程序的新手,因为我通常只是进行手动测试......但是我这次尝试以正确的方式进行测试。
为什么这个基本测试失败了?
<title>Home Sign-In</title>
第一个断言是成功的但不是第二个断言。当我查看源代码时,标题似乎是正确的。
fab=(FloatingActionButton)findViewById(R.id.fab);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}
}
答案 0 :(得分:2)
如果您在控制器方法中有重定向调用,则不会进行实际渲染。这就是为什么你不能使用assert_select
。
您可以尝试将测试用例分成两部分:
test "once you go to to app you are asked to sign in" do
get "/"
assert_redirected_to "/users/sign_in"
end
test "sign in page title is correct" do
get "/users/sign_in"
assert_select "title", "Home Sign-In"
end
答案 1 :(得分:0)
@Pavel是对的。 获取请求后检查响应的简单方法是 @ response.body 。 所以在你的情况下
test "once you go to to app you are asked to sign in" do
get "/"
assert_redirected_to "/users/sign_in"
byebug #print @response.body here. At this point @response.body will
# be "You are being redirected to /users/sign_in".
assert_select "title", "Home Sign-In"
end
因此您可以将其修改为 Pavel 建议
test "sign in page title is correct" do
get "/users/sign_in"
assert_select "title", "Home Sign-In"
end