Mockによるユニットテスト

1330 ワード

一、初めてUTをして、いくつか自分の小さい収获があって、记录して、ついでに他の人を助けることができることを望みます.
二、Mock mockテストとは、テストの過程で、構築しにくいオブジェクトや入手しにくいオブジェクトに対して、仮想的なオブジェクトでテストのためのテスト方法を作成することです.Mockはあなたが望むオブジェクトを作ることができます.階層テストでは、コントロールやサービスだけをテストすることができます.下層の呼び出しにかかわる必要はありません.そうすれば、テストは容易になります.自分の欲しいリソースをロックすることができます.あなたのインタフェースを仮定して、500種類の異なる戻り結果があって、あなたはこの500種類の戻り結果を製造してカバー率を高めるならば、あなたはUTを書くのに疲れて死ぬことができて、しかし、あなたはMockにそれを任意の値に戻すことができて、このようにUTカバー率はロケットに乗るように、ピューピューと上昇して、ハハハ!!!
1、コントロール層のテストを行う場合、サービス層をロックする必要があります.例えば、以下のようにします.
@Mock
private RouteServiceImpl routeService;

そして、自分が設定した、欲しい、任意の内容を返すことができます.リストは私が望んでいる内容です.
when(routeService.selectByRouteId(any())).thenReturn(list);

2、サービス層のテストを行うときは、Dao(Mapper)層をロックする必要があります.例えば、
@Mock
private RuleMapper ruleMapper;

0より大きい任意の整数は私が望んでいる戻り値です.
when(ruleMapper.insertSelective(any())).thenReturn(1);

3、try/catchのブロックがあり、追加する必要がある
@Test(expected = RuntimeException.class)

UTを書くと,感覚コードの作成は,テストの煩雑さに大きく影響する.もちろん、TDDであれば、このようなアドバイスは必要ないかもしれません.1、できるだけif/elseを使わないで、特にネストを避けて、さもなくば、あなたのUTはきっとたくさん书くことができて、结局、if、else(くだらない话)2、ifの中のロジック、少なく&|、ネストが多くて、分岐が多くてあなたを泣かせる3、staticの方法を少なくして、今私はまだstaticの方法のテスト/::4、privateの方法を少なくして、テストが难しくて、私有の方法について、それを呼び出す方法をテストすることができます.