From: Caleb Clausen Date: 2010-03-08T01:59:44+09:00 Subject: Re: testing a class method that also is called in initialize On 3/6/10, Adam Akhtar wrote: > Hi im still learning testing and bit confused about testing the > parse_file method below > > > class Data > def initialize a_file > @records = parse_file(a_file) > end > > def parse_file(a_file) > .... > end > end > > To test parse_file i must first create a new data object i.e. > > sample_data = Data.new("survey") > then in my test > > assert_equal blah, sample_data.parse_file("sample.txt") > > but in the test when i create a new data object the the method will be > invoked via initialize before ive even tested it which doesnt sit right > with me. What harm is going to come of letting parse_file run before the assertion which tests it? I don't understand your concern. IMNSHO, the assignment to @records should occur inside of parse_file, OR parse_file should be private. > Should i be mocking this? Or is there a simpler solution to this. Avoid mocks unless they're really necessary.