-
Notifications
You must be signed in to change notification settings - Fork 1
MobilePhoneWithFeatureEnvy test
Mikhail Pravilov edited this page Jul 3, 2018
·
1 revision
Test is similar to MoveMethod test, but is taken from book about code smells. Test case is more real than in other tests. As a refactoring it is suggested to move getMobilePhoneNumber() to Phone class.
| Member | Move to |
|---|---|
| Customer.getMobilePhoneNumber | Phone |
package mobilePhoneWithFeatureEnvy;
public class Customer {
private Phone mobilePhone;
public String getMobilePhoneNumber() {
return "(" +
mobilePhone.getAreaCode() + ") " +
mobilePhone.getPrefix() + "-" +
mobilePhone.getNumber();
}
}package mobilePhoneWithFeatureEnvy;
public class Phone {
private final String unformattedNumber;
public Phone(String unformattedNumber) {
this.unformattedNumber = unformattedNumber;
}
public String getAreaCode() {
return unformattedNumber.substring(0, 3);
}
public String getPrefix() {
return unformattedNumber.substring(3, 6);
}
public String getNumber() {
return unformattedNumber.substring(6, 10);
}
}