Skip to content

Commit 002f72e

Browse files
author
Frank Oh
committed
added junit rule examples
1 parent 0c2fbef commit 002f72e

13 files changed

Lines changed: 304 additions & 20 deletions

junit-rule/pom.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@
2828
<version>4.12</version>
2929
<scope>test</scope>
3030
</dependency>
31+
<dependency>
32+
<groupId>org.assertj</groupId>
33+
<artifactId>assertj-core</artifactId>
34+
<version>3.11.1</version>
35+
</dependency>
3136
<dependency>
3237
<groupId>org.projectlombok</groupId>
3338
<artifactId>lombok</artifactId>
@@ -38,6 +43,11 @@
3843
<artifactId>logback-classic</artifactId>
3944
<version>1.2.3</version>
4045
</dependency>
46+
<dependency>
47+
<groupId>org.hamcrest</groupId>
48+
<artifactId>hamcrest-core</artifactId>
49+
<version>1.3</version>
50+
</dependency>
4151
</dependencies>
4252

4353
<build>

junit-rule/src/test/java/com/advenoh/AppTest.java

Lines changed: 0 additions & 20 deletions
This file was deleted.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package com.advenoh;
2+
3+
import org.junit.Rule;
4+
import org.junit.Test;
5+
import org.junit.rules.ErrorCollector;
6+
7+
import static org.hamcrest.CoreMatchers.equalTo;
8+
import static org.hamcrest.core.Is.is;
9+
10+
public class ErrorCollectorRuleTest {
11+
@Rule
12+
public ErrorCollector collector = new ErrorCollector();
13+
14+
@Test
15+
public void test_첫번째_테스트실행이후에도_실행됨() {
16+
collector.addError(new Throwable("First Error!"));
17+
collector.addError(new Throwable("Second Error!"));
18+
19+
collector.checkThat(5, is(8)); //First Error
20+
collector.checkThat(5, is(5)); //Passed
21+
collector.checkThat(5, is(equalTo(9))); //Second Error
22+
}
23+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.advenoh;
2+
3+
import org.junit.Rule;
4+
import org.junit.Test;
5+
import org.junit.rules.ExpectedException;
6+
7+
public class ExpectedExceptionRuleTest {
8+
9+
@Rule
10+
public ExpectedException thrown = ExpectedException.none();
11+
12+
@Test
13+
public void throwsNullPointerException() {
14+
thrown.expect(RuntimeException.class);
15+
throw new NullPointerException();
16+
}
17+
18+
@Test
19+
public void throwsRuntimeExceptionWithMessage() {
20+
thrown.expect(RuntimeException.class);
21+
thrown.expectMessage("failed!");
22+
throw new RuntimeException("failed!");
23+
}
24+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
package com.advenoh;
2+
3+
import lombok.extern.slf4j.Slf4j;
4+
import org.junit.rules.ExternalResource;
5+
6+
@Slf4j
7+
public class MyServer extends ExternalResource {
8+
@Override
9+
protected void before() throws Throwable {
10+
// start the server
11+
log.info("start the server");
12+
}
13+
14+
@Override
15+
protected void after() {
16+
// stop the server
17+
log.info("stop the server");
18+
}
19+
}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.advenoh;
2+
3+
import lombok.extern.slf4j.Slf4j;
4+
import org.junit.ClassRule;
5+
import org.junit.Test;
6+
import org.junit.runner.RunWith;
7+
import org.junit.runners.Suite;
8+
9+
//todo: 이거 잘 이해가 안됨
10+
11+
@RunWith(Suite.class)
12+
@Suite.SuiteClasses({ TestFirstServer.class, TestSecondServer.class })
13+
@Slf4j
14+
public class ServerTest {
15+
@ClassRule
16+
public static MyServer server = new MyServer();
17+
18+
@Test
19+
public void testBlah() throws Exception {
20+
// test something that depends on the server.
21+
log.info("ServerTest... testBlah");
22+
}
23+
}
24+
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package com.advenoh;
2+
3+
import lombok.extern.slf4j.Slf4j;
4+
import org.junit.Rule;
5+
import org.junit.Test;
6+
import org.junit.rules.TemporaryFolder;
7+
8+
import java.io.File;
9+
import java.io.IOException;
10+
11+
import static org.assertj.core.api.Assertions.assertThat;
12+
13+
@Slf4j
14+
public class TemporaryRuleTest {
15+
@Rule
16+
public TemporaryFolder tmpFolder = new TemporaryFolder();
17+
18+
/**
19+
* //var/folders/f3/z3w0kdln2sn_7z0_qq6rn4dxrgwgh2/T/junit88560316993858696/test.txt
20+
*
21+
* @throws IOException
22+
*/
23+
@Test
24+
public void test_임시파일_생성하기() throws IOException {
25+
File tmpFile = tmpFolder.newFile("test.txt");
26+
assertThat(tmpFile.isFile()).isTrue();
27+
assertThat(tmpFolder.getRoot()).isEqualTo(tmpFile.getParentFile());
28+
}
29+
30+
@Test
31+
public void test_임시_폴더_생성하기() throws IOException {
32+
File tmpFile = tmpFolder.newFolder();
33+
assertThat(tmpFile.isDirectory()).isTrue();
34+
}
35+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.advenoh;
2+
3+
import org.junit.Test;
4+
5+
public class TestFirstServer {
6+
7+
@Test
8+
public void testBlah() throws Exception {
9+
System.out.print("Test Server - 1\n");
10+
}
11+
}
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
package com.advenoh;
2+
3+
import org.junit.Rule;
4+
import org.junit.Test;
5+
import org.junit.rules.TestName;
6+
7+
import static org.junit.Assert.assertEquals;
8+
9+
public class TestNameRuleTest {
10+
@Rule
11+
public TestName name = new TestName();
12+
13+
@Test
14+
public void testOne() {
15+
assertEquals("testOne", name.getMethodName());
16+
}
17+
18+
@Test
19+
public void testTwo() {
20+
assertEquals("testTwo", name.getMethodName());
21+
}
22+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.advenoh;
2+
3+
import org.junit.Test;
4+
5+
public class TestSecondServer {
6+
@Test
7+
public void testBlah() throws Exception {
8+
System.out.print("Test Server - 2\n");
9+
}
10+
}

0 commit comments

Comments
 (0)