为什么要做测试?
很多公司为了节省成本
,基本上是不会要求开发写单元测试的。自己做完的功能,动手点点看看基本流程是否通畅就丢给测试了。
项目小的时候这样也不会有啥问题。随着项目的复杂度越来越高,人员越来越多,不同的人员改动到同一块代码,但彼此对原来的逻辑不是很清楚(因为代码量实在太多,想要一个人弄清楚所有细节已经不太可能)。
这也是为什么大家宁肯写新的代码也不愿意改旧的代码的原因。而如果每个功能在开发的同时配置了单元测试,那么理论上新的功能 开发完之后,所有的单元测试应该都是可以跑通的。这样就能自动帮我们检查出来一些难以发现的bug。
Android如何进行单元测试
- androidTest目录:应包含在实际或虚拟设备上运行的测试。此类测试包括集成测试,端到端测试以及仅JVM无法验证应用程序功能的其他测试。
- test目录:应包含在本地计算机上运行的测试,例如单元测试
测试常用库
- JUnit
- Mockito
- PowerMock
- Espresso
JUnit
TestCase TestResult
TestSuite 测试套件
在实际项目中,随着项目进度的开展,单元测试类会越来越多,可是直到现在我们还只会一个一个的单独运行测试类,这在实际项目实践中肯定是不可行的。 为了解决这个问题,JUnit 提供了一种批量运行测试类的方法,叫做测试套件。
断言: Assert
标注:
标注 | 描述 |
---|---|
@Test | 该方法是一个测试用例 |
@Before | 每个测试方法执行之前执行 |
@After | 每个测试方法执行后执行 |
@BeforeClass | 一个测试文件只执行一次 |
@AfterClass | 一个测试文件最后执行一次 |
@Ignore | 这个注解是用来忽略有关不需要执行的测试的。 |
Mockito
模拟被测对象依赖的对象
参考
PowerMock
模拟被测对象依赖的静态方法
Robolectric
Android SDK测试框架