美文网首页
Java单元测试

Java单元测试

作者: Tinyspot | 来源:发表于2022-07-31 19:25 被阅读0次

单元测试

  • 白盒测试
  • 单元测试框架Junit:@Before, @Test, @After,before和after在每个测试用例执行前都会被调用一次
  • @BeforeClass, @AfterClass 只会在开始之前执行一次
  • 如何对 Exception 进行测试
Assert.assertEquals(expected, actual);
Assert.assertTrue(condition);
Assert.assertNotNull(object);
Assert.assertArrayEquals(expecteds, actuals);

测试套件

@RunWith(Suite.class)
@Suite.SuiteClasses({
        xxx.class,
        xxx.class
})
public class AllTests {

}

使用Mock对象

  • 真实对象不易构造,例如 HttpServlet 必须在 servlet 容器中才能创建出来
  • 真实对象的有些行为难于触发
  • 真实对象可能还不存在,例如依赖的另外一个模块还未开发完毕
  • 使用:录制和回放

mockito

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-core</artifactId>
    <version>4.7.0</version>
    <scope>test</scope>
</dependency>

处理遗留代码

  • 确定要测试的类和函数
  • 解除依赖
  • 编写测试用例
  • 重构代码
public class Account {
    public void transfer() {
        TransactionManager txManager = new TransactionManagerImpl();
        txManager.begin();
        // ...
        txManager.commit();
    }
}
// 重构 Refactor -> Extract Method
public class Account {
    public void transfer() {
        TransactionManager txManager = getTxManager();
        // ...
    }
    private TransactionManagerImpl getTxManager() {
        return new TransactionManagerImpl();
    }
}
// 测试之前,创建一个子类,重写 getTxManager() 来提供一个 Mock 实现
Account account = new Account() {
    @Override
    protected TransactionManagerImpl getTxManager() {
        return new MockTransactionManager();
    }
};
account.transfer();

TDD

  • 程序员的两个最基本技能:1. 写测试用例 2. 重构
  • 任务分解,边界条件

相关文章

  • 单元测试-JUnit

    java单元测试是最小的功能单元测试代码, 单元测试就是针对单个java方法的测试。相比较于main方法进行测试,...

  • 单元测试-mockito+powermock

    单元测试--Java 使用mockito+powermock进行java单元测试 实例 如下一个正常业务代码,接下...

  • Android单元测试 - 如何开始?

    回顾: 《谈谈为什么写单元测试》 基本单元测试框架 Java单元测试框架:Junit、Mockito、Powerm...

  • Android单元测试

    本文主要内容 1、单元测试介绍 2、java单元测试 3、android单元测试 4、常用方法介绍 1、单元测试介...

  • 5.自动化测试工具

    单元测试工具 JUnit:Java单元测试 NUnit CppUnit:C++单元测试 性能测试工具 LoadRu...

  • Mockito使用介绍

    Mockito是用于写Java的单元测试框架,在单元测试中使用Mockito来创建和模拟(Mock)假的Java对...

  • Instrumentation

    1、Instrumentation单元测试框架,基于Junit;Junit是java单元测试根本 2、想要进行自动...

  • Jmokit

    # Junit+Jmokit单元测试 标签(空格分隔):java单元测试 --- > 原理:mock测试就是在测试...

  • 单元测试框架之unittest简介

    一、单元测试的含义 unittest单元测试框架的设计灵感来源于Junit(Java语言的单元测试框架),它与其他...

  • nodejs mock数据 单元测试

    nodejs 单元测试 nodejs koa 框架实现Java 中mock+junit类似的单元测试。 需要用到的...

网友评论

      本文标题:Java单元测试

      本文链接:https://www.haomeiwen.com/subject/wquhirtx.html