Mocking file uploads in Rails 3.1 controller tests

前端 未结 3 1572
一个人的身影
一个人的身影 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:48

    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
    

提交回复
热议问题