Мне очень часто приходится делать удобные перегрузки для методов. Вот пример того, что я могу сделать:
public void Encode(string value) {
Encode(value, DefaultEncoding);
}
public void Encode(string value, Encoding encoding) {
// ...
}
Я начинаю уделять больше внимания единичному тестированию, а методы тестирования, подобные этому, приводят к некоторым препятствиям, я не уверен, что я доверяю себе, чтобы идти в одиночку. Первая и самая важная проблема заключается в том, следует ли дублировать тесты для обеих перегрузок. Например, оба метода должны вызывать ArgumentNullException, если значение равно null; правильнее ли распознавать, что может быть другая логика и написать два теста, или лучше предположить, что удобные перегрузки не имеют собственной логики?
У меня также есть вторичная проблема. Моя схема именования такая же, как у Роя Ошерова: "MemberName_State_ExpectedResult". Если я повторяю тесты, у меня возникают конфликтующие имена, не вводя какое-либо соглашение об именовании нечетных имен. Как вы справляетесь с этим, если вы дублируете тесты?