@benleggiero I just though maybe we are on the same page... I completely agree with "Even private and internal things should work the way you expect them to, and tests prevent that from changing", but such behavior should be tested via public interface, I.e. tests check what code does and are not cementing the implementation. You could, without fear, extract stuff into a separate package-private (or private and in the same file) class and not have tests break.