junit 使用教程Word格式文档下载.docx
- 文档编号:18759868
- 上传时间:2023-01-01
- 格式:DOCX
- 页数:40
- 大小:266.99KB
junit 使用教程Word格式文档下载.docx
《junit 使用教程Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《junit 使用教程Word格式文档下载.docx(40页珍藏版)》请在冰豆网上搜索。
=”比较两个对象
assertTrue(condition)
查看运行结果是否为true。
assertFalse(condition)
查看运行结果是否为false。
assertThat(actual,matcher)
查看实际值是否满足指定的条件
fail()
让测试失败
2.示例
[java]viewplaincopyprint?
package
test;
import
static
org.hamcrest.CoreMatchers.*;
org.junit.Assert.*;
java.util.Arrays;
org.hamcrest.core.CombinableMatcher;
org.junit.Test;
public
class
AssertTests
{
@Test
void
testAssertArrayEquals()
byte[]
expected
=
"
trial"
.getBytes();
actual
org.junit.Assert.assertArrayEquals("
failure
-
byte
arrays
not
same"
expected,
actual);
}
testAssertEquals()
org.junit.Assert.assertEquals("
strings
5l,
5l);
testAssertFalse()
org.junit.Assert.assertFalse("
should
be
false"
false);
testAssertNotNull()
org.junit.Assert.assertNotNull("
null"
new
Object());
testAssertNotSame()
org.junit.Assert.assertNotSame("
same
Object"
Object(),
testAssertNull()
org.junit.Assert.assertNull("
null);
testAssertSame()
Integer
aNumber
Integer.valueOf(768);
org.junit.Assert.assertSame("
aNumber,
aNumber);
//
JUnit
Matchers
assertThat
testAssertThatBothContainsString()
org.junit.Assert.assertThat("
albumen"
both(containsString("
a"
)).and(containsString("
b"
)));
testAssertThathasItemsContainsString()
org.junit.Assert.assertThat(Arrays.asList("
one"
two"
three"
),
hasItems("
));
testAssertThatEveryItemContainsString()
org.junit.Assert.assertThat(Arrays.asList(new
String[]
fun"
ban"
net"
}),
everyItem(containsString("
n"
Core
Hamcrest
with
testAssertThatHamcrestCoreMatchers()
assertThat("
good"
allOf(equalTo("
startsWith("
not(allOf(equalTo("
bad"
equalTo("
))));
anyOf(equalTo("
assertThat(7,
not(CombinableMatcher.<
Integer>
either(equalTo(3)).or(equalTo(4))));
assertThat(new
not(sameInstance(new
Object())));
packagetest;
importstaticorg.hamcrest.CoreMatchers.*;
importstaticorg.junit.Assert.*;
importjava.util.Arrays;
importorg.hamcrest.core.CombinableMatcher;
importorg.junit.Test;
publicclassAssertTests{
@Test
publicvoidtestAssertArrayEquals(){
byte[]expected="
byte[]actual="
org.junit.Assert.assertArrayEquals("
failure-bytearraysnotsame"
expected,actual);
}
publicvoidtestAssertEquals(){
org.junit.Assert.assertEquals("
failure-stringsnotsame"
5l,5l);
publicvoidtestAssertFalse(){
org.junit.Assert.assertFalse("
failure-shouldbefalse"
false);
publicvoidtestAssertNotNull(){
org.junit.Assert.assertNotNull("
shouldnotbenull"
newObject());
publicvoidtestAssertNotSame(){
org.junit.Assert.assertNotSame("
shouldnotbesameObject"
newObject(),newObject());
publicvoidtestAssertNull(){
org.junit.Assert.assertNull("
shouldbenull"
null);
publicvoidtestAssertSame(){
IntegeraNumber=Integer.valueOf(768);
org.junit.Assert.assertSame("
shouldbesame"
aNumber,aNumber);
//JUnitMatchersassertThat
publicvoidtestAssertThatBothContainsString(){
org.junit.Assert.assertThat("
both(containsString("
publicvoidtestAssertThathasItemsContainsString(){
org.junit.Assert.assertThat(Arrays.asList("
"
),hasItems("
publicvoidtestAssertThatEveryItemContainsString(){
org.junit.Assert.assertThat(Arrays.asList(newString[]{"
}),everyItem(containsString("
//CoreHamcrestMatcherswithassertThat
publicvoidtestAssertThatHamcrestCoreMatchers(){
assertThat("
allOf(equalTo("
),startsWith("
not(allOf(equalTo("
),equalTo("
assertThat("
anyOf(equalTo("
assertThat(7,not(CombinableMatcher.<
either(equalTo(3)).or(equalTo(4))));
assertThat(newObject(),not(sameInstance(newObject())));
}
3.核心——注解
3.1.说明
@Before
初始化方法
@After
释放资源
@Test
测试方法,在这里可以测试期望异常和超时时间
@Ignore
忽略的测试方法
@BeforeClass
针对所有测试,只执行一次,且必须为staticvoid
@AfterClass
@RunWith
指定测试类使用某个运行器
@Parameters
指定测试类的测试数据集合
@Rule
允许灵活添加或重新定义测试类中的每个测试方法的行为
@FixMethodOrder
指定测试方法的执行顺序
3.2.执行顺序
一个测试类单元测试的执行顺序为:
@BeforeClass–>
@Before–>
@Test–>
@After–>
@AfterClass
每一个测试方法的调用顺序为:
@Before–>
@After
3.3.示例
org.junit.*;
JDemoTest
@BeforeClass
setUpBeforeClass()
throws
Exception
System.out.println("
in
BeforeClass================"
);
@AfterClass
tearDownAfterClass()
AfterClass================="
@Before
before()
Before"
@After
after()
After"
@Test(timeout
10000)
testadd()
JDemo
a
JDemo();
assertEquals(6,
a.add(3,
3));
Test
----Add"
testdivision()
assertEquals(3,
a.division(6,
2));
----Division"
@Ignore
test_ignore()
a.add(1,
5));
test_ignore"
teest_fail()
fail();
extends
Thread
int
result;
add(int
a,
b)
try
sleep(1000);
result
+
b;
catch
(InterruptedException
e)
return
division(int
/
importorg.junit.*;
publicclassJDemoTest{
@BeforeClass
publicstaticvoidsetUpBeforeClass()throwsException{
System.out.println("
inBeforeClass================"
publicstaticvoidtearDownAfterClass()throwsException{
inAfterClass================="
@Before
publicvoidbefore(){
inBefore"
publicvoidafter(){
inAfter"
@Test(timeout=10000)
publicvoidtestadd(){
JDemoa=newJDemo();
assertEquals(6,a.add(3,3));
inTest----Add"
publicvoidtestdivision(){
assertEquals(3,a.division(6,2));
inTest----Division"
@Ignore
publicvoidtest_ignore(){
assertEquals(6,a.add(1,5));
intest_ignore"
publicvoidteest_fail(){
fail();
classJDemoextendsThread{
intresult;
publicintadd(inta,intb){
try{
sleep(1000);
result=a+b;
}catch(InterruptedExceptione){
}
returnresult;
publicintdivision(inta,intb){
returnresult=a/b;
执行结果:
[plain]viewplaincopyprint?
BeforeClass================
Before
----Add
After
----Division
AfterClass=================
inBeforeClass================
inBefore
inTest----Add
inAfter
inTest----Division
inAfterClass=================
图中左上红框中部分表示Junit运行结果,5个成功(1个忽略),1个错误,1个失败。
(注意错误和失败不是一回事,错误说明代码有错误,而失败表示该测试方法测试失败)
左下红框中则表示出了各个测试方法的运行状态,可以看到成功、错误、失败、失败各自的图标是不一样的,还可以看到运行时间。
右边部分则是异常堆栈,可查看异常信息。
3.4.实例总结
3.4.1.参数化测试
有时一个测试方法,不同的参数值会产生不同的结果,那么我们为了测试全面,会把多个参数值都写出来并一一断言测试,这样有时难免费时费力,这是我们便可以采用参数化测试来解决这个问题。
参数化测试就好比把一个“输入值,期望值”的集合传入给测试方法,达到一次性
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- junit 使用教程 使用 教程