java带参数的构造方法有几种 java中构造器和构造方法的区别?
构造函数是一种构造函数,它在创建对象时初始化成员变量。默认情况下,它是一个无参数构造函数。
构造函数是一种特殊的方法。主要用于对象创建时的初始化,也就是给对象成员变量赋一个初始值。在创建对象的语句中,它总是与
事件
例如,DateFormat的formatCurrentTime()方法如下,代码如下:
公共类日期格式{
public static final SIMPLE DATE FORMAT SIMPLE _ DATE _ FORMAT new SIMPLE DATE FORMAT(# 34 yymmdd hhmmssz # 34)
公共静态字符串formatCurrentTime() {
return SIMPLE_DATE_(新日期())
}
}
我现在期望判断formatCurrentTime方法返回的值是否是SIMPLE_DATE_FORMAT对象格式化的值(当然这段代码一定是第一眼看到的,所以不要 我不认为它 没什么意义,实际工作中确实有对无聊的东西的需求)。
为了满足这个要求,我只需要判断SIMPLE_DATE_(new Date())是否等于()方法调用的返回值。但是很明显,formatCurrnetTime方法内部调用SIMPLE_Date_ method时传入的参数直接增加了一个DATE对象,而我在外部显式调用SIMPLE_DATE_ method时再次创建的DATE对象肯定不是这个,所以我需要mock类的无参数构造函数来保证每次新建时返回的都是同一个对象。
测试代码如下:
实现
@RunWith()
@PrepareForTest()
公共类DateFormatTest {
@以前
公共void设置(){
()
}
@测试
public void testFormatCurrentTime()引发异常{
日期日期新日期()
PowerMockito.whenNew()。不带参数()。然后返回(日期)
(_DATE_(日期),())
}
}
与上面的代码一样,只需要模拟日期类的无参数构造函数:
解释一下像JDK这样的类的模拟操作过程,这里用到powermock。关于Powermock的配置,请参见文章mockito与Powermock工具的mock构造器合作。
步骤如下:
1.在测试类上使用注释@RunWith()。
2.注意@ prepareforest声明要处理的类:
3.调用mockStatic方法的Mockdate类(调用PowerMockito的mock Date类也可以。毕竟这里需要的只是mockStatic构造方法。我用了Mockstatic,因为我在wiki上看过它的介绍,地址在这里:)。
最后,根据这里的需要,设置Date 的无参数构造函数,模拟构造函数的api用法可以在文章Mockito与powermock工具模拟构造函数合作中找到。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。