source: java2python/junit-t/someunittest/testcode/SomeUnitTest.java@ 958

Last change on this file since 958 was 958, checked in by wouter, 4 months ago

#325 changed translation of standard unit tests. They now also the original, unchanged class plus some extra class that calls the tests. This ensures it also works if the test class has a constructor.

File size: 1.4 KB
RevLine 
[717]1package testcode;
2
[730]3import static org.junit.Assert.assertEquals;
4import static org.junit.Assert.assertFalse;
5
[717]6import org.junit.Test;
[896]7import org.junit.internal.runners.JUnit4ClassRunner;
8import org.junit.runner.RunWith;
[717]9
10/**
11 * Test that having a @Test annotation results in the translated class to extend
12 * unittest.TestCase. We can not test this in java, therefore this class is not
13 * runnable.
14 */
[896]15@RunWith(JUnit4ClassRunner.class)
[717]16public class SomeUnitTest {
17
[958]18 public SomeUnitTest() {
19 // do nothing. This is just to test that
20 // we can handle the presence of a constructor.
21 }
22
[730]23 /**
24 * NOTE NO CONSTRUCTOR. This is needed to check that the proper constructor,
25 * matching in this case the implicit superclass TestCase from Python, is
26 * created. This is a special case, in normal cases java already enforces
27 * all required code including the call to super().
28 */
[717]29 @Test
30 public void test1() {
[730]31 assertFalse(1 == value());
[717]32 }
33
[730]34 private int value() {
35 return 2;
36 }
37
[721]38 /**
39 * This test does not have the name testXXX.java and therefore the
40 * translator must introduce a new method that does start with "test"
41 */
42 @Test
[896]43 public void someTest() {
[730]44 assertEquals(2, value());
[721]45 }
46
47 /**
[896]48 * Translating this must result in testRaises(). This test must NOT start
49 * with 'test'
[721]50 */
[730]51 @Test(expected = ArithmeticException.class)
[896]52 public void NullTest() {
[730]53 int x = 1 / 0;
[721]54 }
55
[717]56}
Note: See TracBrowser for help on using the repository browser.