【问题标题】:rspec testing a value update using JavaScript and Pusherrspec 使用 JavaScript 和 Pusher 测试值更新
【发布时间】:2013-12-11 20:50:50
【问题描述】:

我有一个名为 Url 的模型,并且在根页面中有一个计数器,我使用 pusher 使用 javascript(实际上是 coffescript)更新计数器值。

在我的根页面中,我有一个订阅 chanel 并等待消息的 javascript:

pusher = new Pusher(gon.pusher_key)
channel = pusher.subscribe("url_counter")
channel.bind "update_url_counter", (data) ->
  $(counter).text(data.urlsCount)

然后,当我创建或删除一个 url 时,我会向 pusher 发送一条带有计数器值的消息:

Pusher.trigger("url_counter", "update_url_counter", {urlsCount: Url.all.count})

视图中包含计数器的对象是这样的:

Total urls: <span id="url_counter"><%=@url_count%></span>

这东西很好用。但我不知道如何测试它。

我希望信息足够好,有人可以帮助我。

提前致谢。

【问题讨论】:

    标签: javascript ruby-on-rails rspec capybara pusher


    【解决方案1】:

    这是我测试它的方式。

    一方面,我确保在创建 url 时正确调用 Pusher

    url = "http://test.com"
    
    expect(Pusher).to receive(:trigger).with("urlmini", "update_url_counter", {urlsCount: 1}).and_return {}
    
    visit new_url_path
    fill_in "url_text", with: original
    click_button "submit_url"
    

    然后为了测试我的 JavaScript 是否正常工作,我调用 Pusher

    visit root_path
    within "#url_counter" do
      expect(page).to have_content "0"
    end
    fake_counter = 10
    Pusher.trigger("urlmini", "update_url_counter", {urlsCount: fake_counter})
    within "#url_counter" do
      expect(page).to have_content fake_counter
    end 
    

    【讨论】:

      猜你喜欢
      • 2013-12-07
      • 1970-01-01
      • 2023-03-31
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多