I read about TDD and I tried it in my new project.

I understand that in TDD this is similar to Blackbox testing, i.e. what matters , not how . So, I came to the conclusion and stopped testing private methods, having read about it on many posts, since this is incorrect.
However, I could not do this for these reasons.
I will show you an example: I have a program that reads a text paragraph, so I wrote something like this in my test method (for tdd step1).
So I made this method to create a RED case.
public void paragraphMustNotBeNullTest(){ File f = new File("some path") ParagraphReader reader= new ParagraphReader(); reader.read(); assertNotNull("my custom paragraph is null",reader.getCustomParagraph()); }
I wrote the following code:
package com.olabs.reader; import java.io.FileInputStream; import java.io.InputStream; import com.olabs.models.OlabsParagraph; public class Para { private String paragraphText = null; private Paragraph oParagraph = null; public Paragraph getCustomParagraph() { return oParagraph; } public void setoParagraph(Paragraph oParagraph) { this.oParagraph = oParagraph; } public void read() { InputStream is = new FileInputStream("abc......");
Now the problem is that I know in advance that I will use countingwords and createCustomParagraph as private methods.
So, in such cases, I should:
I am confused by this. Everyone says that writing code only after you write a failed test, but here, if I know that I will write a private method , how will I do it?
I ask you to correct me if I am mistaken somewhere. Also, if possible, give some real example ...
In addition, I am afraid that most of the time I will edit tests or delete them due to problems with access or refactoring specifications ...
Note. This is not a duplicate question. I do not have a good answer for real-time situations. In all the examples I've seen, they show only one class with default or public specifiers, so they really don't show how to work in real time.