mutant 0.1.1 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +5 -11
- data/.rspec +0 -1
- data/.travis.yml +14 -3
- data/Changelog.md +3 -0
- data/Gemfile +5 -1
- data/Gemfile.devtools +49 -0
- data/Guardfile +18 -0
- data/README.md +67 -0
- data/Rakefile +4 -1
- data/TODO +13 -0
- data/bin/mutant +14 -0
- data/bin/zombie +14 -0
- data/config/flay.yml +3 -0
- data/config/flog.yml +2 -0
- data/config/roodi.yml +26 -0
- data/config/site.reek +93 -0
- data/config/yardstick.yml +2 -0
- data/lib/inflector.rb +7 -0
- data/lib/inflector/defaults.rb +62 -0
- data/lib/inflector/inflections.rb +209 -0
- data/lib/inflector/methods.rb +149 -0
- data/lib/inflector/version.rb +3 -0
- data/lib/mutant.rb +96 -21
- data/lib/mutant/cli.rb +309 -0
- data/lib/mutant/color.rb +61 -0
- data/lib/mutant/context.rb +36 -0
- data/lib/mutant/context/scope.rb +138 -0
- data/lib/mutant/differ.rb +100 -0
- data/lib/mutant/helper.rb +38 -0
- data/lib/mutant/killer.rb +136 -0
- data/lib/mutant/killer/forking.rb +41 -0
- data/lib/mutant/killer/rspec.rb +49 -0
- data/lib/mutant/killer/static.rb +19 -0
- data/lib/mutant/loader.rb +129 -0
- data/lib/mutant/matcher.rb +55 -0
- data/lib/mutant/matcher/chain.rb +66 -0
- data/lib/mutant/matcher/method.rb +173 -0
- data/lib/mutant/matcher/method/classifier.rb +126 -0
- data/lib/mutant/matcher/method/instance.rb +67 -0
- data/lib/mutant/matcher/method/singleton.rb +141 -0
- data/lib/mutant/matcher/object_space.rb +114 -0
- data/lib/mutant/matcher/scope_methods.rb +127 -0
- data/lib/mutant/mutation.rb +101 -12
- data/lib/mutant/mutation/filter.rb +75 -0
- data/lib/mutant/mutation/filter/code.rb +68 -0
- data/lib/mutant/mutation/filter/regexp.rb +39 -0
- data/lib/mutant/mutation/filter/whitelist.rb +47 -0
- data/lib/mutant/mutator.rb +134 -30
- data/lib/mutant/mutator/node.rb +163 -0
- data/lib/mutant/mutator/node/arguments.rb +24 -0
- data/lib/mutant/mutator/node/block.rb +24 -0
- data/lib/mutant/mutator/node/define.rb +24 -0
- data/lib/mutant/mutator/node/if_statement.rb +93 -0
- data/lib/mutant/mutator/node/literal.rb +54 -0
- data/lib/mutant/mutator/node/literal/array.rb +28 -0
- data/lib/mutant/mutator/node/literal/boolean.rb +49 -0
- data/lib/mutant/mutator/node/literal/dynamic.rb +24 -0
- data/lib/mutant/mutator/node/literal/empty_array.rb +26 -0
- data/lib/mutant/mutator/node/literal/fixnum.rb +37 -0
- data/lib/mutant/mutator/node/literal/float.rb +48 -0
- data/lib/mutant/mutator/node/literal/hash.rb +89 -0
- data/lib/mutant/mutator/node/literal/nil.rb +25 -0
- data/lib/mutant/mutator/node/literal/range.rb +94 -0
- data/lib/mutant/mutator/node/literal/regex.rb +43 -0
- data/lib/mutant/mutator/node/literal/string.rb +26 -0
- data/lib/mutant/mutator/node/literal/symbol.rb +26 -0
- data/lib/mutant/mutator/node/noop.rb +55 -0
- data/lib/mutant/mutator/node/receiver_case.rb +140 -0
- data/lib/mutant/mutator/node/return.rb +31 -0
- data/lib/mutant/mutator/node/send.rb +112 -0
- data/lib/mutant/mutator/registry.rb +48 -0
- data/lib/mutant/mutator/util.rb +87 -0
- data/lib/mutant/random.rb +24 -27
- data/lib/mutant/reporter.rb +48 -30
- data/lib/mutant/reporter/cli.rb +221 -0
- data/lib/mutant/reporter/null.rb +42 -0
- data/lib/mutant/reporter/stats.rb +64 -0
- data/lib/mutant/runner.rb +112 -0
- data/lib/mutant/strategy.rb +42 -0
- data/lib/mutant/strategy/rspec.rb +59 -0
- data/lib/mutant/strategy/rspec/example_lookup.rb +122 -0
- data/lib/mutant/subject.rb +115 -0
- data/lib/mutant/support/method_object.rb +31 -0
- data/locator.rb +87 -0
- data/mutant.gemspec +21 -21
- data/spec/integration/mutant/differ_spec.rb +15 -0
- data/spec/integration/mutant/loader_spec.rb +21 -0
- data/spec/integration/mutant/method_matching_spec.rb +269 -0
- data/spec/integration/mutant/rspec_killer_spec.rb +24 -0
- data/spec/integration/mutant/runner_spec.rb +26 -0
- data/spec/integration/mutant/zombie_spec.rb +8 -0
- data/spec/rcov.opts +7 -0
- data/spec/shared/command_method_behavior.rb +7 -0
- data/spec/shared/each_method_behaviour.rb +15 -0
- data/spec/shared/hash_method_behavior.rb +17 -0
- data/spec/shared/idempotent_method_behavior.rb +7 -0
- data/spec/shared/invertible_method_behaviour.rb +9 -0
- data/spec/shared/method_filter_parse_behavior.rb +16 -0
- data/spec/shared/method_match_behavior.rb +39 -0
- data/spec/shared/mutator_behavior.rb +46 -0
- data/spec/spec_helper.rb +11 -14
- data/spec/support/compress_helper.rb +10 -0
- data/spec/support/rspec.rb +22 -0
- data/spec/support/test_app.rb +5 -0
- data/spec/support/zombie.rb +141 -0
- data/spec/unit/mutant/cli/class_methods/new_spec.rb +87 -0
- data/spec/unit/mutant/cli/class_methods/run_spec.rb +38 -0
- data/spec/unit/mutant/context/root_spec.rb +11 -0
- data/spec/unit/mutant/context/scope/class_methods/build_spec.rb +29 -0
- data/spec/unit/mutant/context/scope/root_spec.rb +22 -0
- data/spec/unit/mutant/context/scope/unqualified_name_spec.rb +27 -0
- data/spec/unit/mutant/killer/fail_ques_spec.rb +39 -0
- data/spec/unit/mutant/killer/rspec/class_methods/new_spec.rb +32 -0
- data/spec/unit/mutant/loader/eval/class_methods/run_spec.rb +33 -0
- data/spec/unit/mutant/loader/rubinius/class_methods/run_spec.rb +42 -0
- data/spec/unit/mutant/matcher/chain/each_spec.rb +37 -0
- data/spec/unit/mutant/matcher/chain/matchers_spec.rb +12 -0
- data/spec/unit/mutant/matcher/class_methods/from_string_spec.rb +49 -0
- data/spec/unit/mutant/matcher/class_methods/parse_spec.rb +12 -0
- data/spec/unit/mutant/matcher/each_spec.rb +14 -0
- data/spec/unit/mutant/matcher/method/class_methods/parse_spec.rb +21 -0
- data/spec/unit/mutant/matcher/method/classifier/class_methods/run_spec.rb +34 -0
- data/spec/unit/mutant/matcher/method/method_spec.rb +11 -0
- data/spec/unit/mutant/matcher/object_space/class_methods/parse_spec.rb +24 -0
- data/spec/unit/mutant/matcher/object_space/each_spec.rb +31 -0
- data/spec/unit/mutant/mutator/each_spec.rb +25 -0
- data/spec/unit/mutant/mutator/emit_new_spec.rb +51 -0
- data/spec/unit/mutant/mutator/emit_spec.rb +52 -0
- data/spec/unit/mutant/mutator/node/block/mutation_spec.rb +36 -0
- data/spec/unit/mutant/mutator/node/define/mutation_spec.rb +47 -0
- data/spec/unit/mutant/mutator/node/if_statement/mutation_spec.rb +30 -0
- data/spec/unit/mutant/mutator/node/literal/array_spec.rb +30 -0
- data/spec/unit/mutant/mutator/node/literal/boolean/mutation_spec.rb +23 -0
- data/spec/unit/mutant/mutator/node/literal/empty_array_spec.rb +17 -0
- data/spec/unit/mutant/mutator/node/literal/fixnum_spec.rb +17 -0
- data/spec/unit/mutant/mutator/node/literal/float_spec.rb +25 -0
- data/spec/unit/mutant/mutator/node/literal/hash_spec.rb +34 -0
- data/spec/unit/mutant/mutator/node/literal/nil_spec.rb +13 -0
- data/spec/unit/mutant/mutator/node/literal/range_spec.rb +35 -0
- data/spec/unit/mutant/mutator/node/literal/regex_spec.rb +23 -0
- data/spec/unit/mutant/mutator/node/literal/string_spec.rb +17 -0
- data/spec/unit/mutant/mutator/node/literal/symbol_spec.rb +17 -0
- data/spec/unit/mutant/mutator/node/receiver_case/mutation_spec.rb +27 -0
- data/spec/unit/mutant/mutator/node/return/mutation_spec.rb +21 -0
- data/spec/unit/mutant/mutator/node/send/mutation_spec.rb +78 -0
- data/spec/unit/mutant/mutator/self_spec.rb +7 -0
- data/spec/unit/mutant/subject/class_methods/new_spec.rb +13 -0
- data/spec/unit/mutant/subject/context_spec.rb +14 -0
- data/spec/unit/mutant/subject/each_spec.rb +35 -0
- data/spec/unit/mutant/subject/node_spec.rb +13 -0
- data/tasks/metrics/ci.rake +7 -0
- data/tasks/metrics/flay.rake +41 -0
- data/tasks/metrics/flog.rake +43 -0
- data/tasks/metrics/heckle.rake +216 -0
- data/tasks/metrics/metric_fu.rake +31 -0
- data/tasks/metrics/reek.rake +15 -0
- data/tasks/metrics/roodi.rake +15 -0
- data/tasks/metrics/yardstick.rake +23 -0
- data/tasks/spec.rake +45 -0
- data/tasks/yard.rake +9 -0
- data/test_app/.rspec +1 -0
- data/test_app/lib/test_app.rb +5 -0
- data/test_app/lib/test_app/literal.rb +32 -0
- data/test_app/spec/shared/command_method_behavior.rb +7 -0
- data/test_app/spec/shared/each_method_behaviour.rb +15 -0
- data/test_app/spec/shared/hash_method_behavior.rb +17 -0
- data/test_app/spec/shared/idempotent_method_behavior.rb +7 -0
- data/test_app/spec/shared/invertible_method_behaviour.rb +9 -0
- data/test_app/spec/shared/method_filter_parse_behavior.rb +16 -0
- data/test_app/spec/shared/method_match_behavior.rb +39 -0
- data/test_app/spec/shared/mutator_behavior.rb +44 -0
- data/test_app/spec/spec_helper.rb +7 -0
- data/test_app/spec/unit/test_app/literal/command_spec.rb +9 -0
- data/test_app/spec/unit/test_app/literal/string_spec.rb +9 -0
- metadata +346 -124
- data/.rvmrc +0 -1
- data/Readme.md +0 -13
- data/exe/mutate +0 -6
- data/lib/mutant/extensions.rb +0 -8
- data/lib/mutant/formatter.rb +0 -19
- data/lib/mutant/implementation.rb +0 -70
- data/lib/mutant/literal.rb +0 -147
- data/lib/mutant/method.rb +0 -31
- data/lib/mutant/mutatee.rb +0 -61
- data/lib/mutant/node.rb +0 -26
- data/lib/mutant/runners/rspec.rb +0 -34
- data/lib/mutant/version.rb +0 -3
- data/spec/functional/class_spec.rb +0 -46
- data/spec/functional/instance_method/array_spec.rb +0 -53
- data/spec/functional/instance_method/boolean_spec.rb +0 -101
- data/spec/functional/instance_method/call_spec.rb +0 -161
- data/spec/functional/instance_method/fixnum_spec.rb +0 -53
- data/spec/functional/instance_method/float_spec.rb +0 -53
- data/spec/functional/instance_method/hash_spec.rb +0 -53
- data/spec/functional/instance_method/if_spec.rb +0 -57
- data/spec/functional/instance_method/ivar_assign_spec.rb +0 -62
- data/spec/functional/instance_method/range_spec.rb +0 -53
- data/spec/functional/instance_method/regex_spec.rb +0 -55
- data/spec/functional/instance_method/string_spec.rb +0 -53
- data/spec/functional/instance_method/symbol_spec.rb +0 -53
- data/spec/functional/reporter/method_loaded_spec.rb +0 -62
- data/spec/functional/reporter/running_mutations_spec.rb +0 -60
- data/spec/functional/runners/rspec_spec.rb +0 -26
- data/spec/functional/singleton_method/array_spec.rb +0 -53
- data/spec/functional/singleton_method/boolean_spec.rb +0 -101
- data/spec/functional/singleton_method/call_spec.rb +0 -161
- data/spec/functional/singleton_method/fixnum_spec.rb +0 -53
- data/spec/functional/singleton_method/float_spec.rb +0 -53
- data/spec/functional/singleton_method/hash_spec.rb +0 -53
- data/spec/functional/singleton_method/if_spec.rb +0 -57
- data/spec/functional/singleton_method/ivar_assign_spec.rb +0 -60
- data/spec/functional/singleton_method/range_spec.rb +0 -53
- data/spec/functional/singleton_method/regex_spec.rb +0 -55
- data/spec/functional/singleton_method/string_spec.rb +0 -53
- data/spec/functional/singleton_method/symbol_spec.rb +0 -53
- data/spec/mutant/extensions_spec.rb +0 -13
- data/spec/mutant/implementation_spec.rb +0 -223
- data/spec/mutant/literal_spec.rb +0 -129
- data/spec/mutant/mutatee_spec.rb +0 -28
- data/spec/mutant/node_spec.rb +0 -41
- data/spec/mutant/random_spec.rb +0 -33
- data/spec/mutant/reporter_spec.rb +0 -17
- data/spec/mutant_spec.rb +0 -28
- data/spec/support/example_group_helpers.rb +0 -11
- data/spec/support/example_helpers.rb +0 -5
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe 'Mutating arrays' do
|
|
4
|
-
context 'for an instance method' do
|
|
5
|
-
context 'that contains [1,2,3]' do
|
|
6
|
-
before do
|
|
7
|
-
write_file 'thing.rb', """
|
|
8
|
-
class Thing
|
|
9
|
-
def to_a
|
|
10
|
-
[1,2,3]
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
"""
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
context 'with an expectation that the array is [1,2,3]' do
|
|
17
|
-
before do
|
|
18
|
-
write_file 'spec/thing_spec.rb', """
|
|
19
|
-
$: << '.'
|
|
20
|
-
require 'thing'
|
|
21
|
-
|
|
22
|
-
describe 'Thing#to_a' do
|
|
23
|
-
specify { Thing.new.to_a.should eq([1,2,3]) }
|
|
24
|
-
end
|
|
25
|
-
"""
|
|
26
|
-
mutate 'Thing#to_a spec/thing_spec.rb'
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
specify 'the mutation passes' do
|
|
30
|
-
all_output.should include('passed')
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
context 'with an expectation that the array responds to length' do
|
|
35
|
-
before do
|
|
36
|
-
write_file 'spec/thing_spec.rb', """
|
|
37
|
-
$: << '.'
|
|
38
|
-
require 'thing'
|
|
39
|
-
|
|
40
|
-
describe 'Thing#to_a' do
|
|
41
|
-
specify { Thing.new.to_a.should respond_to(:length) }
|
|
42
|
-
end
|
|
43
|
-
"""
|
|
44
|
-
mutate 'Thing#to_a spec/thing_spec.rb'
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
specify 'the mutation fails' do
|
|
48
|
-
all_output.should include('failed')
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe 'Mutating booleans' do
|
|
4
|
-
context 'for an instance method' do
|
|
5
|
-
context 'that contains `true`' do
|
|
6
|
-
before do
|
|
7
|
-
write_file 'thing.rb', """
|
|
8
|
-
class Thing
|
|
9
|
-
def alive?
|
|
10
|
-
true
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
"""
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
context 'with an expectation that the return value is true' do
|
|
17
|
-
before do
|
|
18
|
-
write_file 'spec/thing_spec.rb', """
|
|
19
|
-
$: << '.'
|
|
20
|
-
require 'thing'
|
|
21
|
-
|
|
22
|
-
describe 'Thing#alive?' do
|
|
23
|
-
specify { Thing.new.should be_alive }
|
|
24
|
-
end
|
|
25
|
-
"""
|
|
26
|
-
mutate 'Thing#alive? spec/thing_spec.rb'
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
specify 'the mutation passes' do
|
|
30
|
-
all_output.should include('passed')
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
context 'with an expectation that the return value is true or false' do
|
|
35
|
-
before do
|
|
36
|
-
write_file 'spec/thing_spec.rb', """
|
|
37
|
-
$: << '.'
|
|
38
|
-
require 'thing'
|
|
39
|
-
|
|
40
|
-
describe 'Thing#alive?' do
|
|
41
|
-
specify { String(Thing.new.alive?).should =~ /true|false/ }
|
|
42
|
-
end
|
|
43
|
-
"""
|
|
44
|
-
mutate 'Thing#alive? spec/thing_spec.rb'
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
specify 'the mutation fails' do
|
|
48
|
-
all_output.should include('failed')
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
context 'that contains `false`' do
|
|
54
|
-
before do
|
|
55
|
-
write_file 'thing.rb', """
|
|
56
|
-
class Thing
|
|
57
|
-
def alive?
|
|
58
|
-
false
|
|
59
|
-
end
|
|
60
|
-
end
|
|
61
|
-
"""
|
|
62
|
-
end
|
|
63
|
-
|
|
64
|
-
context 'with an expectation that the return value is false' do
|
|
65
|
-
before do
|
|
66
|
-
write_file 'spec/thing_spec.rb', """
|
|
67
|
-
$: << '.'
|
|
68
|
-
require 'thing'
|
|
69
|
-
|
|
70
|
-
describe 'Thing.alive?' do
|
|
71
|
-
specify { Thing.new.should_not be_alive }
|
|
72
|
-
end
|
|
73
|
-
"""
|
|
74
|
-
mutate 'Thing#alive? spec/thing_spec.rb'
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
specify 'the mutation passes' do
|
|
78
|
-
all_output.should include('passed')
|
|
79
|
-
end
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
context 'with an expectation that the return value is true or false' do
|
|
83
|
-
before do
|
|
84
|
-
write_file 'spec/thing_spec.rb', """
|
|
85
|
-
$: << '.'
|
|
86
|
-
require 'thing'
|
|
87
|
-
|
|
88
|
-
describe 'Thing#alive?' do
|
|
89
|
-
specify { String(Thing.new.alive?).should =~ /true|false/ }
|
|
90
|
-
end
|
|
91
|
-
"""
|
|
92
|
-
mutate 'Thing#alive? spec/thing_spec.rb'
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
specify 'the mutation fails' do
|
|
96
|
-
all_output.should include('failed')
|
|
97
|
-
end
|
|
98
|
-
end
|
|
99
|
-
end
|
|
100
|
-
end
|
|
101
|
-
end
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe 'Mutating calls' do
|
|
4
|
-
context 'for an instance method' do
|
|
5
|
-
context 'that contains a method call without arguments' do
|
|
6
|
-
before do
|
|
7
|
-
write_file 'life.rb', """
|
|
8
|
-
class Life
|
|
9
|
-
def helper
|
|
10
|
-
42
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def answer
|
|
14
|
-
helper
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
"""
|
|
18
|
-
end
|
|
19
|
-
|
|
20
|
-
context 'with an expectation that the answer is 42' do
|
|
21
|
-
before do
|
|
22
|
-
write_file 'spec/life_spec.rb', """
|
|
23
|
-
$: << '.'
|
|
24
|
-
require 'life'
|
|
25
|
-
|
|
26
|
-
describe 'Life#answer' do
|
|
27
|
-
specify { Life.new.answer.should eq(42) }
|
|
28
|
-
end
|
|
29
|
-
"""
|
|
30
|
-
run_simple '../../bin/mutate Life#answer spec/life_spec.rb'
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
specify 'the mutation passes' do
|
|
34
|
-
all_output.should include('passed')
|
|
35
|
-
end
|
|
36
|
-
end
|
|
37
|
-
|
|
38
|
-
context 'with an expectation that life respond to :answer' do
|
|
39
|
-
before do
|
|
40
|
-
write_file 'spec/life_spec.rb', """
|
|
41
|
-
$: << '.'
|
|
42
|
-
require 'life'
|
|
43
|
-
|
|
44
|
-
describe 'Life#answer' do
|
|
45
|
-
specify { Life.new.should respond_to(:answer) }
|
|
46
|
-
end
|
|
47
|
-
"""
|
|
48
|
-
run_simple '../../bin/mutate Life#answer spec/life_spec.rb'
|
|
49
|
-
end
|
|
50
|
-
|
|
51
|
-
specify 'the mutation fails' do
|
|
52
|
-
all_output.should include('failed')
|
|
53
|
-
end
|
|
54
|
-
end
|
|
55
|
-
end
|
|
56
|
-
|
|
57
|
-
context 'that contains a method call with arguments' do
|
|
58
|
-
before do
|
|
59
|
-
write_file 'life.rb', """
|
|
60
|
-
class Life
|
|
61
|
-
def helper(num)
|
|
62
|
-
num + 2
|
|
63
|
-
end
|
|
64
|
-
|
|
65
|
-
def answer
|
|
66
|
-
helper(40)
|
|
67
|
-
end
|
|
68
|
-
end
|
|
69
|
-
"""
|
|
70
|
-
end
|
|
71
|
-
|
|
72
|
-
context 'with an expectation that the answer is 42' do
|
|
73
|
-
before do
|
|
74
|
-
write_file 'spec/life_spec.rb', """
|
|
75
|
-
$: << '.'
|
|
76
|
-
require 'life'
|
|
77
|
-
|
|
78
|
-
describe 'Life#answer' do
|
|
79
|
-
specify { Life.new.answer.should eq(42) }
|
|
80
|
-
end
|
|
81
|
-
"""
|
|
82
|
-
run_simple '../../bin/mutate Life#answer spec/life_spec.rb'
|
|
83
|
-
end
|
|
84
|
-
|
|
85
|
-
specify 'the mutation passes' do
|
|
86
|
-
all_output.should include('passed')
|
|
87
|
-
end
|
|
88
|
-
end
|
|
89
|
-
|
|
90
|
-
context 'with an expectation that life respond to :answer' do
|
|
91
|
-
before do
|
|
92
|
-
write_file 'spec/life_spec.rb', """
|
|
93
|
-
$: << '.'
|
|
94
|
-
require 'life'
|
|
95
|
-
|
|
96
|
-
describe 'Life#answer' do
|
|
97
|
-
specify { Life.new.should respond_to(:answer) }
|
|
98
|
-
end
|
|
99
|
-
"""
|
|
100
|
-
run_simple '../../bin/mutate Life#answer spec/life_spec.rb'
|
|
101
|
-
end
|
|
102
|
-
|
|
103
|
-
specify 'the mutation fails' do
|
|
104
|
-
all_output.should include('failed')
|
|
105
|
-
end
|
|
106
|
-
end
|
|
107
|
-
end
|
|
108
|
-
|
|
109
|
-
context 'that contains a method call with a block' do
|
|
110
|
-
before do
|
|
111
|
-
write_file 'life.rb', """
|
|
112
|
-
class Life
|
|
113
|
-
def helper
|
|
114
|
-
yield
|
|
115
|
-
end
|
|
116
|
-
|
|
117
|
-
def answer
|
|
118
|
-
helper { 42 }
|
|
119
|
-
end
|
|
120
|
-
end
|
|
121
|
-
"""
|
|
122
|
-
end
|
|
123
|
-
|
|
124
|
-
context 'with an expectation that the answer is 42' do
|
|
125
|
-
before do
|
|
126
|
-
write_file 'spec/life_spec.rb', """
|
|
127
|
-
$: << '.'
|
|
128
|
-
require 'life'
|
|
129
|
-
|
|
130
|
-
describe 'Life#answer' do
|
|
131
|
-
specify { Life.new.answer.should eq(42) }
|
|
132
|
-
end
|
|
133
|
-
"""
|
|
134
|
-
run_simple '../../bin/mutate Life#answer spec/life_spec.rb'
|
|
135
|
-
end
|
|
136
|
-
|
|
137
|
-
specify 'the mutation passes' do
|
|
138
|
-
all_output.should include('passed')
|
|
139
|
-
end
|
|
140
|
-
end
|
|
141
|
-
|
|
142
|
-
context 'with an expectation that life respond to :answer' do
|
|
143
|
-
before do
|
|
144
|
-
write_file 'spec/life_spec.rb', """
|
|
145
|
-
$: << '.'
|
|
146
|
-
require 'life'
|
|
147
|
-
|
|
148
|
-
describe 'Life#answer' do
|
|
149
|
-
specify { Life.new.should respond_to(:answer) }
|
|
150
|
-
end
|
|
151
|
-
"""
|
|
152
|
-
run_simple '../../bin/mutate Life#answer spec/life_spec.rb'
|
|
153
|
-
end
|
|
154
|
-
|
|
155
|
-
specify 'the mutation fails' do
|
|
156
|
-
all_output.should include('failed')
|
|
157
|
-
end
|
|
158
|
-
end
|
|
159
|
-
end
|
|
160
|
-
end
|
|
161
|
-
end
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe 'Mutating fixnums' do
|
|
4
|
-
context 'for an instance method' do
|
|
5
|
-
context 'that contains 42' do
|
|
6
|
-
before do
|
|
7
|
-
write_file 'life.rb', """
|
|
8
|
-
class Life
|
|
9
|
-
def answer
|
|
10
|
-
42
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
"""
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
context 'with an expectation that the return value is 42' do
|
|
17
|
-
before do
|
|
18
|
-
write_file 'spec/life_spec.rb', """
|
|
19
|
-
$: << '.'
|
|
20
|
-
require 'life'
|
|
21
|
-
|
|
22
|
-
describe 'Life#answer' do
|
|
23
|
-
specify { Life.new.answer.should eq(42) }
|
|
24
|
-
end
|
|
25
|
-
"""
|
|
26
|
-
mutate 'Life#answer spec/life_spec.rb'
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
specify 'the mutation passes' do
|
|
30
|
-
all_output.should include('passed')
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
context 'with an expectation that the return value is a Fixnum' do
|
|
35
|
-
before do
|
|
36
|
-
write_file 'spec/life_spec.rb', """
|
|
37
|
-
$: << '.'
|
|
38
|
-
require 'life'
|
|
39
|
-
|
|
40
|
-
describe 'Life#answer' do
|
|
41
|
-
specify { Life.new.answer.should be_a(Fixnum) }
|
|
42
|
-
end
|
|
43
|
-
"""
|
|
44
|
-
mutate 'Life#answer spec/life_spec.rb'
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
specify 'the mutation fails' do
|
|
48
|
-
all_output.should include('failed')
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe 'Mutating floats' do
|
|
4
|
-
context 'for an instance method' do
|
|
5
|
-
context 'that contains 42.5' do
|
|
6
|
-
before do
|
|
7
|
-
write_file 'life.rb', """
|
|
8
|
-
class Life
|
|
9
|
-
def answer
|
|
10
|
-
42.5
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
"""
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
context 'with an expectation that the return value is 42.5' do
|
|
17
|
-
before do
|
|
18
|
-
write_file 'spec/life_spec.rb', """
|
|
19
|
-
$: << '.'
|
|
20
|
-
require 'life'
|
|
21
|
-
|
|
22
|
-
describe 'Life#answer' do
|
|
23
|
-
specify { Life.new.answer.should eq(42.5) }
|
|
24
|
-
end
|
|
25
|
-
"""
|
|
26
|
-
mutate 'Life#answer spec/life_spec.rb'
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
specify 'the mutation passes' do
|
|
30
|
-
all_output.should include('passed')
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
context 'with an expectation that the return value is a Float' do
|
|
35
|
-
before do
|
|
36
|
-
write_file 'spec/life_spec.rb', """
|
|
37
|
-
$: << '.'
|
|
38
|
-
require 'life'
|
|
39
|
-
|
|
40
|
-
describe 'Life#answer' do
|
|
41
|
-
specify { Life.new.answer.should be_a(Float) }
|
|
42
|
-
end
|
|
43
|
-
"""
|
|
44
|
-
mutate 'Life#answer spec/life_spec.rb'
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
specify 'the mutation fails' do
|
|
48
|
-
all_output.should include('failed')
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
require 'spec_helper'
|
|
2
|
-
|
|
3
|
-
describe 'Mutating hashes' do
|
|
4
|
-
context 'for an instance method' do
|
|
5
|
-
context 'that contains {:foo => {:bar => 3}}' do
|
|
6
|
-
before do
|
|
7
|
-
write_file 'thing.rb', """
|
|
8
|
-
class Thing
|
|
9
|
-
def to_hash
|
|
10
|
-
{:foo => {:bar => 3}}
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
"""
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
context 'with an expectation that hash[:foo][:bar] is 3' do
|
|
17
|
-
before do
|
|
18
|
-
write_file 'spec/thing_spec.rb', """
|
|
19
|
-
$: << '.'
|
|
20
|
-
require 'thing'
|
|
21
|
-
|
|
22
|
-
describe 'Thing#to_hash' do
|
|
23
|
-
specify { Thing.new.to_hash[:foo][:bar].should eq(3) }
|
|
24
|
-
end
|
|
25
|
-
"""
|
|
26
|
-
mutate 'Thing#to_hash spec/thing_spec.rb'
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
specify 'the mutation passes' do
|
|
30
|
-
all_output.should include('passed')
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
|
|
34
|
-
context 'with an expectation that hash[:foo][:bar] is a Fixnum' do
|
|
35
|
-
before do
|
|
36
|
-
write_file 'spec/thing_spec.rb', """
|
|
37
|
-
$: << '.'
|
|
38
|
-
require 'thing'
|
|
39
|
-
|
|
40
|
-
describe 'Thing#to_hash' do
|
|
41
|
-
specify { Thing.new.to_hash[:foo][:bar].should be_kind_of(Fixnum) }
|
|
42
|
-
end
|
|
43
|
-
"""
|
|
44
|
-
mutate 'Thing#to_hash spec/thing_spec.rb'
|
|
45
|
-
end
|
|
46
|
-
|
|
47
|
-
specify 'the mutation fails' do
|
|
48
|
-
all_output.should include('failed')
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|