单元测试之Mockito与PowerMock


Mockito和PowerMock

为了解决这种问题,Mockito和PowerMock诞生了。这两种工具都可以用一个虚拟的对象来替换那些外部的、不容易构造的对象,便于我们进行单元测试。两者的不同点在于Mockito对于大多数的标准单测case都很适用,而PowerMock可以去解决一些更难的问题(比如静态方法、私有方法等)。https://www.jianshu.com/p/51930cc5dcf9 【待看 0729】

junit 4.x 5.x

testNg 单元测试的另一个方向,没仔细讲

mock powermock (补充Mockito,静态变量)/ easymock / mockito (好) / jmock

behavior testing / concordion (重构类型测试?测试文档?数据报表)/ cucumber (ruby最早搞的) (功能测试)

jenkins / git / github/ git workflow (集成工具)

puppet / ansible / saltstack (部署的动作 CI/CD)

docker

es 日志

grafana

jira

confluence page (wiki)

sonar / sonar scan (checksytle, findbugs, pmd静态代码检查和分析, error)

单元测试的规范:

  • 执行够快 、 自动的、 不应该依赖于其他unit test、不依赖外部资源(网络资源)、 代码应该有意义、任何时候执行任何环境执行结果一样、
  • 测试替身:test doubles,dummy\stub\mock\fake\spy
org.apache.maven.plugins

maven的Pom.xml缺少这一句话找半天

  • 学习了How to stub, stubbing void methods, stubbing method with exception, stubbing consecutive calls, stubbing with real call, stubbing with callback.

Junit

  • JUnit4中@Before、@After、@Test等注解的作用

    @Before:初始化方法 对于每一个测试方法都要执行一次(注意与BeforeClass区别,后者是对于所有方法执行一次) @After:释放资源 对于每一个测试方法都要执行一次(注意与AfterClass区别,后者是对于所有方法执行一次) @Test:测试方法,在这里可以测试期望异常和超时时间 @Test(expected=ArithmeticException.class)检查被测方法是否抛出ArithmeticException异常 @Ignore:忽略的测试方法 @BeforeClass:针对所有测试,只执行一次,且必须为static void @AfterClass:针对所有测试,只执行一次,且必须为static void 一个JUnit4的单元测试用例执行顺序为: @BeforeClass -> @Before -> @Test -> @After -> @AfterClass; 每一个测试方法的调用顺序为:

    @Before -> @Test -> @After;


 Toc
 Tags