Note that there are some explanatory texts on larger screens.

plurals
  1. POWhy do you write sample codes with main() and output instead of JUnit Tests
    text
    copied!<p>I'm new to Stackoverflow and I wonder, why almost everybody writes samplecodes with a static main() and output like here in first answer: <a href="https://stackoverflow.com/questions/8006880/regex-to-fetch-only-key-value-pairs-and-omit-some-charaters">some ugly main</a></p> <p>from some ugly main:</p> <blockquote> <p>But what you posted looks like it's just a properties file. Try this:</p> <pre><code>import java.io.FileInputStream; import java.util.Properties; public class Main { public static void main(String[] args) throws Exception { Properties properties = new Properties(); properties.load(new FileInputStream("test.properties")); System.out.println(properties.getProperty("ReferenceDataLocation")); System.out.println(properties.getProperty("LicenseKey")); System.out.println(properties.getProperty("foo")); } } </code></pre> <p>which will print:</p> <pre><code>as al null </code></pre> </blockquote> <p>wouldn't it be nicer to write it as JUnit Test? It's easier to read. You can verify the result with just CTRL+C + CTRL-V + RunAs -> JUnit and see what is expected (or not).</p> <p>Am I wrong with this idea?</p> <p>I would write the main as this:</p> <pre><code>import static org.hamcrest.MatcherAssert.*; import static org.hamcrest.Matchers.*; import java.io.ByteArrayInputStream; import java.util.Properties; import org.junit.Test; public class TestSomeInputStreamAsProperties { String someFileAsString = "ReferenceDataLocation = as\n"+ " \n" + " \n" + " ##############################################################################\n" + " #\n" + " # LicenseKey\n" + " # Address Doctor License\n" + " #\n" + " ##############################################################################\n" + " LicenseKey = al\n"; @Test public void whenReadingFromSomeInputStreamWeShouldGetProperties() throws Exception { // Arrange Properties properties = new Properties(); // Act properties.load(new ByteArrayInputStream(someFileAsString.getBytes())); // Assert assertThat(properties.getProperty("ReferenceDataLocation"), is("as")); assertThat(properties.getProperty("LicenseKey"), is("al")); assertThat(properties.getProperty("foo"), is(nullValue())); } } </code></pre> <p><strong>The question is: why would I write a sample with main() and output? why don't users try to get on the JUnit train and start writing tests to verify their code?</strong></p> <p>+</p> <p><strong>Another Question: why don't people post their problems as JUnit tests?</strong></p> <p>I'm kinda disappointed. </p> <p><strong>EDIT</strong>: - don't get me wrong about this. It's just expectations > reality ;) I think stackoverflow is still a great site and I will write here all my problems and try to help others to solve theirs. I thought, JUnit is more spread and it would be appreciated by your community to focus on solving problems with JUnit.</p> <p>Instead I realise that it is not wanted. Wouldn't you be disappointed too?</p>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload