Mocking file uploads in Rails 3.1 controller tests

前端 未结 3 1097
旧时难觅i
旧时难觅i 2021-02-15 04:08

My controller accesses the tempfile attribute of an uploaded file and passes it to another mocked component. My test code has

  @file = mock(Object)         


        
3条回答
  •  名媛妹妹
    2021-02-15 04:53

    Finally found this, which tells that although the thing returned by fixture_file_upload has a @tempfile member, it lacks the reader method. Solved as follows

      FileUtils.touch('file.zip') # fixture_file_upload needs the file to exist
      @file = fixture_file_upload('file.zip')
      class << @file
        # The reader method is present in a real invocation,
        # but missing from the fixture object for some reason (Rails 3.1.1)
        attr_reader :tempfile
      end
    

提交回复
热议问题