Зачем использовать json.parse() вместо json.parseObject() в первом утверждении в тесте Spring Boot JSON?JAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Зачем использовать json.parse() вместо json.parseObject() в первом утверждении в тесте Spring Boot JSON?

Сообщение Anonymous »

Я работаю над примером кода из официального курса Spring Academy, в частности над тестом, который десериализует JSON в объект CashCard с помощью JacksonTester.
Вот соответствующий фрагмент кода: р>

Код: Выделить всё

package example.cashcard;

import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.json.JsonTest;
import org.springframework.boot.test.json.JacksonTester;

import java.io.IOException;

import static org.assertj.core.api.Assertions.assertThat;

@JsonTest
class CashCardJsonTest {

@Autowired
private JacksonTester json;

@Test
void cashCardDeserializationTest() throws IOException {
String expected = """
{
"id":99,
"amount":123.45
}
""";
assertThat(json.parse(expected))
.isEqualTo(new CashCard(1000L, 67.89));
assertThat(json.parseObject(expected).id()).isEqualTo(1000);
assertThat(json.parseObject(expected).amount()).isEqualTo(67.89);
}
}
В первом утверждении json.parse(expected) возвращает ObjectContent, который отлично работает с AssertThat из AssertJ. Однако json.parseObject(expected) напрямую возвращает объект CashCard, который, похоже, также можно использовать для первого утверждения.
Поскольку тест работает в любом случае, может ли кто-нибудь объяснить разницу между json.parse() и json.parseObject(), и почему мы должны использовать parse() в первом утверждении, а не parseObject() ? Или, точнее, зачем нам использовать ObjectContent вместо самой CashCard, если они, похоже, ведут себя одинаково? Может ли кто-нибудь указать мне руководство/соглашение о том, что рекомендуется и в каком случае?
Спасибо
Поскольку тест работает в любом случае, может ли кто-нибудь объяснить разницу между json.parse() и json.parseObject() и почему мы должны использовать parse() в первом утверждении, а не parseObject()? Или, точнее, зачем нам использовать ObjectContent вместо самой CashCard, если они, кажется, ведут себя одинаково? Может ли кто-нибудь указать мне руководство/соглашение о том, что рекомендуется и в каком случае?
Спасибо

Подробнее здесь: https://stackoverflow.com/questions/790 ... -in-spring
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»