Скажем, что у меня есть 2 общедоступных метода:
func didSelect(data: Data) {
    // do something
    self.view.showText(textForData(data))
}
func didDismiss(data: Data) {
    if data.isSomething {
        self.view.showText(textForData(data))
    }
    ...
}
private func textForData(data: Data): String {
    var text: String
    if data.distance == nil {
        text = "..."
    } else if data.distance < 1000 {
        text = "\(data.distance) m"
    } else {
        text = "\(data.distance / 1000) km"
    }
    return text
}
Оба они зависят от логики форматирования textForData.
 textForData имеет (с этой минимизированной реализацией) 3 возможных случая.
Если я проверю все возможные случаи для обеих моих публичных функций, у меня будет 6 методов тестирования, и 3 из них также будут тестировать ту же логику, которая уже была проверена другими 3.
Каков правильный способ тестирования этого?
Ps.: Я мог бы написать отдельный тест для textForData, а в тестах для общедоступных методов я утверждаю, что вызывается textForData, но, похоже, нарушает инкапсуляцию моего класса, и я не хочу чтобы сделать testForData общедоступным.
Я также не хотел бы создавать отдельный класс только для моей логики textForData, потому что в конечном итоге создаю слишком много зависимостей для этого текущего класса, и эта логика, похоже, не подходит нигде, кроме этого класса.
