美文网首页
在单元测试中一些有用的工具类

在单元测试中一些有用的工具类

作者: 路痴小僧 | 来源:发表于2017-12-05 15:02 被阅读0次

最近在写单元测试的时候,出了用到了比较常用的mockitopowermock外(关于这两个工具的用法,可以参看这篇博客),还有用的一些其他的比较好用的工具类。

第一个就是Junit中了@Rule注解,它就像@Before,@After这些脚手架的注解一样,为了测试方法添加一些前置行为。例如为所有的测试添加一个timeout时间:

public class BlahTest {
    @Rule
    public Timeout timeout = new Timeout(2000);

    @Test
    public void testA() throws Exception {
        // ...
    }

    @Test
    public void testB() throws Exception {
        // ...
    }
}

或者创建一个临时目录:

public class BlahTest {
    @Rule
    public TemporaryFolder tempFolder = new TemporaryFolder();

    @Test
    public void testIcon() throws Exception {
        File icon = tempFolder.newFile("icon.png");
        // do something else...
    }
}

在我的测试了,我主要是用来的测试被测方法中的异常,通过使用@Rule,不但可以测试方法中的异常类型,还可以验证异常的message:

public class BlahTest {
    @Rule
    public ExpectedException exception = ExpectedException.none();

    @Test
    public void testIcon() throws Exception {
        exception.expect(IllegalArgumentException.class);
        exception.expectMessage("Dude, this is invalid!");
        // do something that you expect to throw an exception...
    }
}

同样用也可以定义自己的Rule,更多关于Junit Rule的东西,可以参看相关的wiki

另一个比较有意思的工具就是Spring 4.2提供了ReflectionTestUtils,当被测试类中需要注入Spring Bean的时候,就可以使用这个工具类:

本测试类

public class Blah {
    @Autowired
    private BlahDao blahDao

    public void someMethod() {
        blahDao.callMethod();
        //do someting others
    }
}

测试方法

@Test
public void testMethod() {
    BlahDao mockBlahDao = createMock(BlahDao.class);
    ReflectionTestUtils.setField(blah, "blahDao", mockBlahDao);
    ......
}

在我的测试用,因为使用了mockito,所有通过@InjectMocks注解就可以实现Bean的注入,但对于@Value这样的属性注入,就只能使用ReflectionTestUtils了。

@Value("${importedFile.baseDir}")
private String baseDir;


ReflectionTestUtils.setField(testedClass, "baseDir", "/opt/xxxx/")

相关文章

  • 在单元测试中一些有用的工具类

    最近在写单元测试的时候,出了用到了比较常用的mockito和powermock外(关于这两个工具的用法,可以参看这...

  • php测试

    概念 单元测试:单元测试能单独证实应用中的各个类,方法和函数能正常运行(工具:PHPUnit) 测试驱动开发(TD...

  • day02 数据存储方式

    经验总结:1.开发中不经常使用XML经常使用JSON,开发中要写单独的UNIT单元测试类,单独的工具类封包,开发中...

  • [Java并发系列] 5.Java并发工具类

    在J.U.C包中,提供了几个非常有用的并发工具类,通过使用这些工具类,可以有效提高并发编程中,并发流程的控制,以提...

  • 使用HttpClient实现get/post请求

    pom.xml 自定义HttpUitl工具类 单元测试

  • 软件包 java.util.concurrent

    在并发编程中很常用的实用工具类。此包包括了几个小的、已标准化的可扩展框架,以及一些提供有用功能的类,没有这些类,这...

  • Bitmap二次采样

    java代码: 工具类: BitmapFactory在解码图片时,可以带一个Options,有一些比较有用的功能,...

  • Bitmap图片处理,二次采样

    java代码: 工具类: BitmapFactory在解码图片时,可以带一个Options,有一些比较有用的功能,...

  • java lang包下的system类

    system 类 System 类包含一些有用的类字段和方法。它不能被实例化。 在 System 类提供的设施中,...

  • Java 工具类

    文章为转载,原作者地址传送门请点击16 个有用的的 Java 工具类在Java中,工具类定义了一组公共方法,这篇文...

网友评论

      本文标题:在单元测试中一些有用的工具类

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