2016-11-25 60 views
0

我想測試顯示在頁面上的值,顯示的數值是代碼:測試視圖元素

<% @user ||= current_user %> 
<div class="stats"> 
    <a href="<%= following_user_path(@user) %>"> 
    <strong id="following" class="stat"> 
     **<%= @user.following.count %>** 
    </strong> 
    following 
    </a> 
    <a href="<%= followers_user_path(@user) %>"> 
    <strong id="followers" class="stat"> 
     <%= @user.followers.count %> 
    </strong> 
    followers 
    </a> 
</div> 

我想使用assert_equals這樣: assert_equals user.followers。計數,(顯示下列值)

但我不確定如何引用頁面上顯示的值。我需要將值賦給一個ID嗎?如果是這樣的話,我如何在測試中正確引用它?

我希望我已經提供了足夠的信息。

Regards,

Ryan。

+0

我不確定它是否從我的帖子中可以清楚,但我想要測試的特定片段位於asterix(@ user.following.count) –

+0

之間。發佈測試代碼也很有幫助。您也可以查看本節http://guides.rubyonrails.org/testing.html#testing-views –

+0

您是否在測試中使用了燈具? –

回答

1

可設兩個scenerios(和你應該做兩者):

  • 你想驗證控制器計算的計數。
  • 你要測試的視圖(HTML)

對於第1部分:檢查你的控制器有,assigns() gives you controller objects/variables

assert_equals assigns(:user).following.count, 2 

對於第2部分:作爲描述here,以測試你的看法使用assert_select。像:

assert_select 'div.stats a strong#following', assigns(:user).following.count 

你也應該更換受讓人(:用戶).following.count一些hardocded號碼,讓你隨時確保一些其他的東西並沒有改變以下計數。

+0

謝謝你,非常有幫助。 –