because spreading age=18 all over your tests is bad practice. The Builder pattern let's you assign meaning to a set of attribute values. This allows your tests to be more expressive because they can be written in terms of meaning and not in terms of effective attribute values. A side benefit is that you can freely modify how a person get's "of age" without having to modify your tests at all.