[xwiki-dev] Let JUnit test work with files

Christian Gmeiner christian.gmeiner at gmail.com
Thu Mar 29 15:21:50 CEST 2007


Hi

2007/3/29, Vincent Massol <vincent at massol.net>:
>
> On Mar 29, 2007, at 3:01 PM, Christian Gmeiner wrote:
>
> > Hi,
> >
> >> Why do you have to work with files? If I were you I'd work with
> >> content in memory, not files. That's much better because:
> >
> > I load the files into memory :)
> >
> >>
> >> 1/ The test and the input data are in the same location making it
> >> easier to understand and maintain the test
> >
> > Adding about 150 lines (html and xwiki) makes the test file very very
> > big. I have here
> > laying much bigger html files (400 lines because of the <style> stuff)
> > and I dont
> > want to add them.
> >
> >> 2/ No IO thus less complex (your post proves it)
> >
> > But is very hard to add 150 lines of a String to the source. Have a
> > look at:
>
> Why do you need 150 lines?

Because I am not wokring with special tests - I am working with real
html files, mostly
exported from Office dcuments.
I have small tests to validate the simple stuff, but when I have a
"real-life" file a lot of
stuff can be different.


>
> I'd say 1-3 lines should be enough no?

I depends.. if I am testing tables or styles 1-3 lines are not
enought. Have a look at this simple one:

         String html =     "<table>"
                        + "  <col/>"
                        + "  <col/>"
                        + "  <col/>"
                        + "  <thead>"
                        + "    <tr>"
                        + "      <th>Col 1</th>"
                        + "      <th>Col 2</th>"
                        + "      <th>Col 3</th>"
                        + "    </tr>"
                        + "  </thead>"
                        + "  <tbody>"
                        + "    <tr>"
                        + "      <td>Some content</td>"
                        + "      <td>in this table, not lots, but</td>"
                        + "      <td>it varies.</td>"
                        + "    </tr>"
                        + "    <tr>"
                        + "      <td>This row has significantly more
words in it</td>"
                        + "      <td>Although not every cell does,
like the following cell is empty.</td>"
                        + "      <td> </td>"
                        + "    </tr>"
                        + "  </tbody>"
                        + "</table>";


If you can tell me, how to do this in 3 lines.. than I am impressed.

>
> You're writing unit tests right?

yes..

>
> [snip]
>
> >> 3/ Much faster
> >
> > For me its no problem if the test is a little bit slower... the
> > quality of tests
> > are much important.
>
> I agree that quality is the most important and I don't see how you'll
> get more quality by having a big file with fixed content. I would
> have though it would be better to have small chunks of text with lots
> of variations to test all cases.

Because the "faked" html can not be compared to real life html.

>
> Also if you have a big text it means you'll have a single test. Not
> good for debugging/finding issues. So instead of doing:
>
> testParsing() with a big file
>
> I think it would be better to have:
>
> testParsingTable()
> testParsingParaggrpah()
> testParsingParagraphWhenBadlyFormed()
> etc

This is what i am doing... but as I wrote in this answer, test can be huge.

>
> WDYT? Am I not understanding what you're doing? :-) (very likely)

I a few words: Produce a good output (xwiki syntax) of html files,
which are exported from office documents.

Greets,
Christian




More information about the devs mailing list