Views are meant to be dumb displays of simple data. Because of that, views should have no unit testing on top of them. If you feel that you should be unit testing your views, your application has not extracted enough functionality away from the view layer.
For example, my Tic Tac Toe board display like this:
1 | 2 | 3
4 | x | 6
o | 8 | 9When I first wrote the presentation logic it looked like:
@board.grid.each_with_index do |row, i|
   row.each_with_index do |cell, j|
     print cell || (i*3)+(j+1)
   end
   puts
endVery simple. Display a letter, if there is one, or display the number of the cell. The only problem was that my view layer was no longer dumb. It know how to count cells. Even the most simple logic should be extracted out of the view layer. So I created a presenter instead.
class BoardPresenter
  def initialize(board)
    @board = board
  end
  def grid
    @board.grid.each_with_index.map do |row, i|
       row.each_with_index.map do |cell, j|
         cell || (i*3)+(j+1)
       end
    end
  end
endNow my view layer is that more concise:
BoardPresenter.new(@board).grid.each do |row|
  row.each do |cell|
    print cell
  end
  puts
end