JUnit is a simple framework to write repeatable tests. It is an instance of the xUnit architecture for unit testing frameworks.
xUnit是一套基于测试驱动开发的测试框架,包括PythonUnit、CppUnit、JUnit。JUnit使用断言机制,与预期结果进行比对。
-
原则
-
测试方法上必须使用@Test进行修饰
-
测试方法必须使用public void 进行修饰,不能待任何的参数
-
新建一个源代码目录
-
测试类的爆应该和被测试类保持一致
-
测试单元中的每个方法必须可以独立测试,测试方法间不能有任何的依赖
-
测试类使用Test作为类名的后缀
-
测试方法使用test作为方法名的前缀
Calculate.java
public class Calculate {
public int add(int a,int b) {
return a + b;
}
public int subtract(int a, int b) {
return a - b;
}
public int multiply(int a,int b) {
return a * b;
}
public int divide(int a ,int b) {
return a / b;
}
}
-
注:
-
Failure,一般由单元测试使用的方法判断失败所引起的,这表示测试点发现了问题,就是说问题输出的结果和我们预期的不一样。
-
测试用例不是用来证明你是对的,是用来证明你们没有错。
测试用例用来达到想要的预期结果,但对于逻辑错误无能为力。
- error是有代码异常引起的,它可以产生于测试代码本身的错误,也可以是测试代码中一个隐藏的bug
CalculateTest.java
public class CalculateTest {
@Test
public void testAdd() {
assertEquals(6, new Calculate().add(3,3));
}
@Test
public void testSubtract() {
assertEquals(3, new Calculate().subtract(5,2));
}
@Test
public void testMultiply() {
assertEquals(4, new Calculate().multiply(2, 2));
}
@Test
public void testDivide() {
assertEquals(3, new Calculate().divide(6, 2));
}
}
ErrorAndFailureTest.java
public class ErrorAndFailureTest {
/*
-
1.Failure一般由单元测试使用的断言方法判断失败所引起的,这经表示 测试点发现了问题
-
,就是说程序输出的结果和我们预期的不一样。
-
2.error是由代码异常引起的,它可以产生于测试代码本身的错误,也可以是被测试代码中的
-
一个隐藏的bug
-
3.测试用例不是用来证明你是对的,而是用来证明你没有错。
*/
@Test
public void testAdd() {
assertEquals(5, new Calculate().add(3,3));
}
@Test
public void testDivide() {
assertEquals(3, new Calculate().divide(6, 0));
}
}
2、使用详解
- 生命周期
JunitFlowTest.java
public class JunitFlowTest {
/*
-
1.@BeforeClass修饰的方法会在所有方法被调用前被执行,
-
而且该方法是静态的,所以当测试类被加载后接着就会运行它,
-
而且在内存中它只会存在一份实例,它比较适合加载配置文件。
-
2.@AfterClass所修饰的方法通常用来对资源的清理,如关闭数据库的连接
-
3.@Before和@After会在每个测试方法的前后各执行一次。
*/
@BeforeClass
public static void setUpBeforeClass() throws Exception {
System.out.println(“this is beforeClass…”);
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
System.out.println(“this is afterClass…”);
}
@Before
public void setUp() throws Exception {
System.out.println(“this is before…”);
}
@After
public void tearDown() throws Exception {
最后
希望大家能有一个好心态,想进什么样的公司要想清楚,并不一定是大公司,我选的也不是特大厂。当然如果你不知道选或是没有规划,那就选大公司!希望我们能先选好想去的公司再投或内推,而不是有一个公司要我我就去!还有就是不要害怕,也不要有压力,平常心对待就行,但准备要充足。最后希望大家都能拿到一份满意的 offer !如果目前有一份工作也请好好珍惜好好努力,找工作其实挺累挺辛苦的。
这里附上上述的面试题相关的几十套字节跳动,京东,小米,腾讯、头条、阿里、美团等公司19年的面试题。把技术点整理成了视频和PDF(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节。
由于篇幅有限,这里以图片的形式给大家展示一小部分。可以点击GitHub免费获取
Hub免费获取](https://github.com/a120464/Android-P7/blob/master/Android%E5%BC%80%E5%8F%91%E4%B8%8D%E4%BC%9A%E8%BF%99%E4%BA%9B%EF%BC%9F%E5%A6%82%E4%BD%95%E9%9D%A2%E8%AF%95%E6%8B%BF%E9%AB%98%E8%96%AA%EF%BC%81.md)
[外链图片转存中…(img-qJomNeHS-1643790968042)]