使用rspec和capybara webkit存根javascript函数
我试图用rspec和capybarawebkit测试一些JS功能 我需要在客户端登录google使用rspec和capybara webkit存根javascript函数,javascript,ruby-on-rails,rspec,capybara-webkit,Javascript,Ruby On Rails,Rspec,Capybara Webkit,我试图用rspec和capybarawebkit测试一些JS功能 我需要在客户端登录google <script src="https://apis.google.com/js/client.js"></script> function auth() { var config = { 'client_id': '<%= ENV["GOOGLE_CLIENT_ID"] %>', 'scope': '<%= E
<script src="https://apis.google.com/js/client.js"></script>
function auth() {
var config = {
'client_id': '<%= ENV["GOOGLE_CLIENT_ID"] %>',
'scope': '<%= ENV["GOOGLE_APIS_HOST"] %>/auth/contacts.readonly'
};
gapi.auth.authorize(config, function() {
fetch(gapi.auth.getToken());
});
}
我看到的第一个问题是没有加载外部JS(这是正确的,因为我希望我的测试被隔离)。当我访问浏览器控制台时,我看到以下消息
{ :line_number=>376, :message=>"ReferenceError: Can't find variable: gapi", :source=>"http://127.0.0.1:59312/users/1" }
你知道我如何测试这个功能吗?我需要它在客户端,因为我没有重定向URL
我想我需要stubgapi
之类的东西,但我不知道如何从capybara实现它,因为它是一个javascript函数
谢谢你哇,这是个有趣的问题。你有没有办法在这一边伪造它,比如在本地的饼干里塞进一些东西,然后再打电话给谷歌?
it "signs in with gmail", js: true do
pool = create :pool
user = create :user, :in_pool, pool: pool
sign_in user
visit pool_path(pool)
click_on "Sign In"
expect(page).to have_css "h1", "Welcome"
end
{ :line_number=>376, :message=>"ReferenceError: Can't find variable: gapi", :source=>"http://127.0.0.1:59312/users/1" }