kapowaz has joined #rom-rb
cored has joined #rom-rb
cored has joined #rom-rb
cored has quit [Changing host]
postmodern has quit [Quit: Leaving]
cored has quit [Ping timeout: 248 seconds]
postmodern has joined #rom-rb
solnic has joined #rom-rb
solnic has quit [Client Quit]
mbj has joined #rom-rb
postmodern has quit [Quit: Leaving]
mbj_ has joined #rom-rb
mbj has quit [Ping timeout: 248 seconds]
postmodern has joined #rom-rb
mbj_ is now known as mbj
postmodern has quit [Quit: Leaving]
mbj has quit [Ping timeout: 256 seconds]
mbj has joined #rom-rb
mbj has quit [Ping timeout: 256 seconds]
snusnu has joined #rom-rb
mbj has joined #rom-rb
solnic has joined #rom-rb
<
snusnu>
mbj: around?
<
mbj>
snusnu: kindergarden party :D, the only guy with notebook
<
mbj>
snusnu: But maybe I have to run soon, but shoot pls. it is boring!
<
snusnu>
mbj: so, i'm about to kill concord mutations
<
mbj>
snusnu: Mutations in concord code base?
<
snusnu>
mbj: and i've encountered this one:
<
snusnu>
def define_readers(descendant)
<
snusnu>
attribute_names = names
<
snusnu>
descendant.send(:attr_reader, *attribute_names)
<
snusnu>
+ descendant.send(:protected)
<
snusnu>
- descendant.send(:protected, *attribute_names)
<
snusnu>
mbj: yeah, concord codebase
<
mbj>
snusnu: where is the prob?
<
snusnu>
mbj: still has quite some mutations (as it needed zombie)
<
snusnu>
mbj: how do i kill that?
<
mbj>
snusnu: Test the attribute readers are protected.
<
snusnu>
mbj: the tests to that already
<
snusnu>
mbj: but how can i test that the descendant doesn't receive protected alone
<
mbj>
snusnu: MAybe a mutant bug, but modify the code the way the mutation looks and run the specs.
<
mbj>
If the specs do not capture this it is the specs fault.
<
mbj>
If the specs cover it, add an issue to mutant
<
snusnu>
mbj: ask yourself this … how would i test the effect of class C; protected end
<
mbj>
snusnu: You should NOT test for this!
<
mbj>
snusnu: you should test with attributes.
<
snusnu>
your tests do that already
<
mbj>
snusnu: so they should fail for the mutation
<
mbj>
If they dont fail for the mutation the specs are invalid.
<
mbj>
if descendant.send(:protected, *attribute_names) is mutated to descendant.send(:protected)
<
mbj>
the spec should notice the metod is NOT protected anymore.
<
mbj>
So mutate by hand and see if the specs (runn them without mutant) capture this.
<
mbj>
Got my point?
<
mbj>
snusnu: Ask your self if why the specs do not notice anymore there are no protected methods!
<
solnic>
you shuold be able to kill every mutation with a test that checks behavior of your object
<
solnic>
inspecting it in any way is testing implementation details
mbj has quit [Read error: Connection reset by peer]
<
snusnu>
ok, he's gone
<
snusnu>
hey solnic
solnic has quit [Quit: Leaving...]
snusnu has quit [Ping timeout: 264 seconds]
snusnu has joined #rom-rb
snusnu has quit [Read error: Connection reset by peer]
snusnu has joined #rom-rb
snusnu has quit [Ping timeout: 268 seconds]
travis-ci has joined #rom-rb
<
travis-ci>
[travis-ci] rom-rb/devtools#54 (rubocop - 57b76f0 : Dan Kubb): The build was broken.
travis-ci has left #rom-rb [#rom-rb]
snusnu has joined #rom-rb
postmodern has joined #rom-rb
mbj has joined #rom-rb
mbj has quit [Quit: leaving]
dkubb has joined #rom-rb