微服务场景下的自动化测试(3)

发表于:2016-10-04来源:icodeit.org/作者:icodeit.org点击数: 标签:微服务
1 ); boolean isExpiredOn = license.isExpiredOn( fixed .plusYears( 1 ).plusDays( 1 ).toDate()); assertTrue(isExpiredOn);}@Test public void license_should_not_expire_before_the_evaluation_period() { Loc
1); boolean isExpiredOn = license.isExpiredOn(fixed.plusYears(1).plusDays(1).toDate()); assertTrue(isExpiredOn); } @Test public void license_should_not_expire_before_the_evaluation_period() { LocalDate fixed = getDateFrom("2015-09-05"); License license = new License(fixed.toDate(), 1); boolean isExpiredOn = license.isExpiredOn(fixed.plusYears(1).minusDays(1).toDate()); assertFalse(isExpiredOn); }

上面这个例子就是一个非常典型的单元测试,它和其他组件基本上没有依赖。即使要测试的对象对其他类有依赖,我们会Stub/Mock的手段来将这些依赖消除,比如使用mockito / PowerMock 。

集成测试

系统内模块(一个模块对其周边的依赖项)间的集成,系统间的集成都可以归类为集成测试。比如

  • 数据库访问模块与数据库的集成
  • 对外部 service 依赖的测试,比如对第三方支付,通知等服务的集成

集成测试强调模块和外部的交互的验证,在集成测试时,通常会涉及到外部的组件,比如数据库,第三方服务。这时候需要尽可能真实的去与外部组件进行交互,比如使用和真实环境相同类型的数据库,采用独立模式(Standalone)的 WireMock 来启动外部依赖的RESTful系统。

通常会用来做模拟外部依赖工具包括:

原文转自:http://icodeit.org/2016/10/testing-in-microservice-context/

...

热门标签