This implementation require expected_difference to be given.
If not given then the test result is sometimes noop. e.g.

    expect { fish }.to_change { fish }
    expect { fish += 1 }.not.to_change { fish }

will both pass when it looks like they should fail.