我在测试中登录Devise时遇到问题。我正在使用Rails中的默认测试套件。
在我的测试帮助文件中,我已经定义了一个log_in方法,如下所示:
$('.linkbox', context).once('linkbox').each(function(e){
var $linkbox = $(this);
var href = $linkbox.data('href');
if (!href) {
return;
}
var $hiddenLink = $('<a>').attr('href', href).hide().appendTo('body');
$linkbox.click(function(e){
$hiddenLink[0].dispatchEvent(new MouseEvent('click', {button: e.button, which: e.which}));
e.preventDefault();
});
});
我没有收到任何错误,该方法只是没有让我登录。我知道这是因为我在没有登录时重定向用户,并且我的一个测试的结果是:
def log_in
@user = User.create(id: 1)
sign_in(:user, @user)
end
在设置中调用sign_in就像这样......
ContentsControllerTest#test_should_show_content [E:/Uni/coursework/empire/test/controllers/contents_controller_test.rb:32]:
Expected response to be a <success>, but was <302>
对我如何登录的任何帮助都将非常感激。
答案 0 :(得分:0)
答案 1 :(得分:0)
我通过将log_in方法更改为以下内容来解决我的问题:
def log_in
sign_in(users(:one))
end
我之所以没有使用固定装置的原因是因为我遇到了导致一些奇怪错误的灯具问题。务必检查你的灯具。