[Java] 测试相关的知识

1)单元测试--方法级的测试--不是所有的系统都可以单元测试(设计太烂)--能进行单元测试需要合理的系统拆分
2)单元测试--质量保证+设计的检验手段(看是不是高内聚低耦合)
3)单元测试一般不会访问disk、db、网络。。。
4)   junit-dep
  金字塔 
     功能测试  维护成本高
     集成测试  要访问,数据库,成本也比较高
     单元测试  成本低 - 只关注自己的业务逻辑,速度快
        单元测试,与时间耦合,很可能会经常失败。
5)Junit--maven--junit-dep(依赖别的包但不是把代码直接copy进去的)
6)@BeforeClass--静态初始化--对应于 @AfterClass
7)@Before--每个test跑之前都要跑一次--对应于@After
8)@Test(expect= 异常.class)--对异常的测试
9)Maven--hamcrest--Matcher
10)Junit--尽量用assertThat
11)join不要太多,sql尽量不要有业务逻辑
12)测试的函数名可以很长,关键要能表达出来目的,如下:
@Test
public void should_save_non_exist_user_to_store(){}

13)IDEA快捷键--CTRL+SHIFT+UP/DOWN 代码 向上/下移动
14)如果一个类A强依赖另外一个类B,则A中的构造函数的参数应该有类B--不要烂用annotation
15)mock是解决fake的一种方法--mockito-all--maven
UserDao dao=Mockito.mock(UserDao.class);
... ...
when(dao.findByUsername("admin")).thenReturn(user);
16)前端输入输出,常规的测试--后端IO用mock来测试
17)单元测试不能随机成功失败
18)使用 mock 进行测试要求我们把可测试与不可测试的代码分开
2. 听取集成测试的相关知识
      1. 单元测试针对Service层,集成测试针对Dao层
      2. 集成化测试使用Spring test包
          @RunWith(SpringJunit4ClassRunner.class)
          指定使用的测试执行类为SpringJunit4ClassRunner。
          @ContextConfiguration("classpath:test.xml")
          配置加载的Spring配置文件的位置。
          @TransactionConfiguration(transactionManager = "txManager")
          对事务进行配置
          @Rollback(false) 
          测试完成以后,对数据库的操作会自动回滚,不会对数据库造成污染;设置为false以后,可保证数据的操作不被回滚
      3. Mock管理平台

          公司自己开发的测试环境,可模拟API支持json和xml。

整理自 : workmates 日报

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值