Sha256: 6ee4ded251cdd8b66831f9def4cf54a0612258b142ef2c0d1216b4ddca5b44a6

Contents?: true

Size: 912 Bytes

Versions: 1

Compression:

Stored size: 912 Bytes

Contents

require File.dirname(__FILE__) + '/../../spec_helper.rb'

require 'reek/class_checker'
require 'reek/report'

include Reek

describe ClassChecker, "(Large Class)" do

  class BigOne
    26.times do |i|
      define_method "method#{i}".to_sym do
        @melting
      end
    end
  end

  before(:each) do
    @rpt = Report.new
    @cchk = ClassChecker.new(@rpt)
  end

  it 'should not report short class' do
    class ShortClass
      def method1() @var1; end
      def method2() @var2; end
      def method3() @var3; end
      def method4() @var4; end
      def method5() @var5; end
      def method6() @var6; end
    end
    @cchk.check_object(ShortClass)
    @rpt.should be_empty
  end

  it 'should report large class' do
    @cchk.check_object(BigOne)
    @rpt.length.should == 1
  end

  it 'should report class name' do
    @cchk.check_object(BigOne)
    @rpt[0].report.should match(/BigOne/)
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
reek-0.3.1 spec/reek/smells/large_class_spec.rb