Testing and has_many Questions

To unit test the models' functionality, I realized I need to call save. That said, I wondered if save in test causes the model to be stored in the database. If so, what should I do to avoid this problem? Should I just call Model.destroy_all at the end?

Second, to test controllers' functionality, is it possible to set the params and session hash? If not, how do you test controller functionality?

Also, many of my models uses has_many and belongs_to. What's the difference between the following methods: count, size, length.

I don't know how I double-posted, but anyway...I have one more question I overlooked.

I have several models created by the line "ruby script/generate model two_words". How should I program the view forms in this case? Since the controller would call this model as "TwoWords", should the form be <% form_for :twoWords, @this_variable do |form| %> ... <%end%>, or should I stick with the intentional name <% form_for :two_words, @this_variable do |form| %> ... <%end%>. In either cases, where would the params be set in this form? In params[:two_words]?