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]?