xml проверяет значение null - PullRequest
0 голосов
/ 24 ноября 2011

Я получу XML от веб-приложения, что-то вроде приведенного ниже.

<note>
<to>Tove</to>
<from>J</from>
<heading>Reminder</heading>
<body>Some Message</body>
</note>

смогу ли я утверждать, что значение в теге равно нулю, что-то похожее на это

<note>
<to></to>
<from>J</from>
<heading>Reminder</heading>
<body>Some Message</body>
</note>

Мне нужно сделать это с помощью Java и Junit.

1 Ответ

2 голосов
/ 24 ноября 2011

Поскольку это открытый вопрос, я постараюсь дать вам одно простое решение.

Используйте XStream для анализа xml для объекта и объекта для xml.

Вы можете начать работу с XStream за 10 минут, прочитав this .

Как только вы создали свой объект, скажите Note, затем вы можете сказать в своем Junit

assertNotNull(note.getTo());

Пример кода ниже:

My Note Class

public class Note {
private String to = null;
private String from = null;
private String heading = null;
private String body = null;

public Note(String to, String from, String heading, String body) {
    super();
    this.to = to;
    this.from = from;
    this.heading = heading;
    this.body = body;
}

public String getTo() {
    return to;
}

public void setTo(String to) {
    this.to = to;
}

public String getFrom() {
    return from;
}

public void setFrom(String from) {
    this.from = from;
}

public String getHeading() {
    return heading;
}

public void setHeading(String heading) {
    this.heading = heading;
}

public String getBody() {
    return body;
}

public void setBody(String body) {
    this.body = body;
}

@Override
public String toString() {
    return new StringBuilder().append("To = ").append(this.getTo())
            .append(" ,From = ").append(this.getFrom())
            .append(" ,Heading = ").append(this.getHeading())
            .append(" ,Body = ").append(this.getBody()).toString();
}

}

Класс, который преобразует XML в объект и объект в XML

import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.io.xml.DomDriver;

public class TestXStream {

public String getXMLFromObject(Note object) {
    XStream xStream = new XStream(new DomDriver());
    return xStream.toXML(object);
}

public Note getNoteFromXML(String noteXML) {
    XStream xStream = new XStream(new DomDriver());
    return (Note) xStream.fromXML(noteXML);
}

}

и пример тестового примера JUnit:

import static org.junit.Assert.*;

import org.junit.After;
import org.junit.Before;
import org.junit.Test;


public class XStreamJunitTest {

@Before
public void setUp() throws Exception {
}

@After
public void tearDown() throws Exception {
}

@Test
public void test() {
    Note note = new Note("TestTo", "TestFrom", "TestHeading", "TestBody");
    TestXStream testXStream = new TestXStream();
    note = testXStream.getNoteFromXML(testXStream.getXMLFromObject(note));
    assertNotNull(note.getBody());
}

}

Надеюсь, что это поможет вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...