#java #junit
#java #junit
Вопрос:
StringWriter result = runMethod.getOutput();
String expected = "<3>textValue</3>"
assertTrue("Should have contained the required result", result.toString().contains(expected));
Почему Junit возвращает ошибку здесь?
Комментарии:
1. Что делает System.out.println(результат. toString()) дает вам?
2. В нем содержится большой блок текста и ожидаемая строка.
3. Когда я распечатываю System.out.println (результат. toString().содержит) выводит значение «true»
4. В чем ошибка? Или он просто выводит «Должен был содержать …»?
5. Я не вижу никаких причин, по которым утверждение завершается ошибкой, если
result
содержит искомую строку. Однако отсутствие точки с запятой заставляет меня думать, что это не тот код, который вы используете. Есть ли у вас что-нибудь еще в этом тестовом примере, что можно изменитьresult
или что-то в этом роде?
Ответ №1:
Я только что попробовал это, и это работает нормально.
Это выдает следующую ошибку, если строка не совпадает. java.lang.Ошибка утверждения: должна была содержать требуемый результат
import static org.junit.Assert.assertTrue;
import java.io.StringWriter;
import org.junit.Test;
public class XYZ
{
@Test
public void test()
{
StringWriter result = new StringWriter();
result.append("<3>textValue</3>");
String expected = "<3>textValue</3>";
assertTrue("Should have contained the required result", result.toString().contains(expected));
}
}