Created
April 1, 2014 20:36
-
-
Save hoshi-takanori/9922619 to your computer and use it in GitHub Desktop.
Java unit test with JUnit vs groovy's power assert.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
% ln -s MyTest.java MyTest.groovy | |
% groovy MyTest.groovy | |
.E.E | |
Time: 0.416 | |
There were 2 errors: | |
1) testMin(MyTest)Assertion failed: | |
assert Math.min(a, b) == b | |
| | | | | | |
1 1 2 | 2 | |
false | |
at org.codehaus.groovy.runtime.InvokerHelper.assertFailed(InvokerHelper.java:386) | |
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.assertFailed(ScriptBytecodeAdapter.java:658) | |
at MyTest.testMin(MyTest.java:14) | |
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | |
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) | |
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) | |
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | |
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) | |
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) | |
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) | |
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) | |
at groovy.lang.MetaClassImpl.invokeStaticMethod(MetaClassImpl.java:1280) | |
at org.codehaus.groovy.runtime.InvokerHelper.invokeStaticMethod(InvokerHelper.java:819) | |
at org.codehaus.groovy.runtime.InvokerHelper.invokeStaticMethod(InvokerHelper.java:65) | |
at groovy.lang.GroovyShell.runJUnit3Test(GroovyShell.java:351) | |
at groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:281) | |
at groovy.lang.GroovyShell.run(GroovyShell.java:229) | |
at groovy.lang.GroovyShell.run(GroovyShell.java:159) | |
at groovy.ui.GroovyMain.processOnce(GroovyMain.java:550) | |
at groovy.ui.GroovyMain.run(GroovyMain.java:337) | |
at groovy.ui.GroovyMain.process(GroovyMain.java:323) | |
at groovy.ui.GroovyMain.processArgs(GroovyMain.java:120) | |
at groovy.ui.GroovyMain.main(GroovyMain.java:100) | |
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | |
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) | |
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) | |
at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:108) | |
at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:130) | |
2) testSwap(MyTest)Assertion failed: | |
assert a == 1 && b == 2 | |
| | | | |
2 | false | |
false | |
at org.codehaus.groovy.runtime.InvokerHelper.assertFailed(InvokerHelper.java:386) | |
at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.assertFailed(ScriptBytecodeAdapter.java:658) | |
at MyTest.testSwap(MyTest.java:22) | |
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | |
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) | |
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) | |
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | |
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) | |
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) | |
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) | |
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) | |
at groovy.lang.MetaClassImpl.invokeStaticMethod(MetaClassImpl.java:1280) | |
at org.codehaus.groovy.runtime.InvokerHelper.invokeStaticMethod(InvokerHelper.java:819) | |
at org.codehaus.groovy.runtime.InvokerHelper.invokeStaticMethod(InvokerHelper.java:65) | |
at groovy.lang.GroovyShell.runJUnit3Test(GroovyShell.java:351) | |
at groovy.lang.GroovyShell.runScriptOrMainOrTestOrRunnable(GroovyShell.java:281) | |
at groovy.lang.GroovyShell.run(GroovyShell.java:229) | |
at groovy.lang.GroovyShell.run(GroovyShell.java:159) | |
at groovy.ui.GroovyMain.processOnce(GroovyMain.java:550) | |
at groovy.ui.GroovyMain.run(GroovyMain.java:337) | |
at groovy.ui.GroovyMain.process(GroovyMain.java:323) | |
at groovy.ui.GroovyMain.processArgs(GroovyMain.java:120) | |
at groovy.ui.GroovyMain.main(GroovyMain.java:100) | |
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | |
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) | |
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) | |
at org.codehaus.groovy.tools.GroovyStarter.rootLoader(GroovyStarter.java:108) | |
at org.codehaus.groovy.tools.GroovyStarter.main(GroovyStarter.java:130) | |
FAILURES!!! | |
Tests run: 2, Failures: 0, Errors: 2 | |
% |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
% javac -cp junit.jar:. MyTest.java | |
% java -ea -cp junit.jar:. junit.textui.TestRunner MyTest | |
.E.E | |
Time: 0.008 | |
There were 2 errors: | |
1) testMin(MyTest)java.lang.AssertionError | |
at MyTest.testMin(MyTest.java:14) | |
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | |
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) | |
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) | |
2) testSwap(MyTest)java.lang.AssertionError | |
at MyTest.testSwap(MyTest.java:22) | |
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | |
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) | |
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) | |
FAILURES!!! | |
Tests run: 2, Failures: 0, Errors: 2 | |
% |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import junit.framework.TestCase; | |
public class MyTest extends TestCase { | |
private int a, b; | |
@Override | |
public void setUp() { | |
a = 1; | |
b = 2; | |
} | |
public void testMin() { | |
assert Math.min(a, b) == a; // OK | |
assert Math.min(a, b) == b; // NG | |
} | |
public void testSwap() { | |
a ^= b; | |
b ^= a; | |
a ^= b; | |
assert a == 2 && b == 1; // OK | |
assert a == 1 && b == 2; // NG | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment