导航:首页 > 方法技巧 > 如何mock一个抽象类的方法

如何mock一个抽象类的方法

发布时间:2022-10-21 12:26:42

A. 如何mock调用super的方法

据我说知: mock测试方法用于构造对象,而不是你说的方法 比如,你现在要调用数据库,但这块也许还没完成,无法用orm框架进行映射,你就可以先new一些这样的对象,将它们保存或当作参数传入等 比如某接口中(UserDao)你有一个方法叫:queryUser(S...

B. java里有什么办法判断一个Class是否为抽象类

若是判断Class类是否为抽象类,可以试试Modifier里的静态方法,里面有很多,判断是否是抽象,是否是静态,是否是私有等等

Classc=Foo.class;
booleanisAbstract=Modifier.isAbstract(c.getModifiers());

C. JAVA 抽象方法的重写

可以用两种方法来解决这个问题:
第一种方法是先声明一个抽象类,在其中声明该抽象方法,然后在子类中实现该抽象方法代码如下:
//抽象类

package ;

public abstract class Sohu {
public abstract boolean hg();
}
//抽象类子类实现该抽象方法类
package ;

public class SohuChild extends Sohu {
private String name;
private String pwd;
@Override
public boolean hg() {
if(name.equals("user")&&pwd.equals("1234")){return true;}
else return false;
}
}
//抽象类子类方式测试类
package ;

public class Test {

/**
* @param args
*/
public static void main(String[] args) {
SohuChild sohu=new SohuChild();
sohu.setName("user");
sohu.setPwd("1234");
System.out.println(sohu.hg());

}

}

第二中方法:定义接口,并在其中声明抽象方法,然后在接口实现类中实现该抽象方法
代码如下:
package ;
//接口
public interface Bai {
//接口中抽象方法
public abstract boolean hg();
}
//接口实现类
package ;

public class BaiImpl implements Bai {
private String name;
private String pwd;
@Override
public boolean hg() {
if(name.equals("user")&&pwd.equals("1234")){return true;}
else return false;
}

}
//下面是接口方式的测试类
package ;

public class Test {

public static void main(String[] args) {
BaiImpl =new BaiImpl();
.setName("user");
.setPwd("1234");
System.out.println(.hg());

}

}

请君测试代码。

D. 什么是抽象类和抽象方法

抽象类就是不能使用new方法进行实例化的类,即没有具体实例对象的类。抽象类有点类似“模板”的作用,目的是根据其格式来创建和修改新的类。对象不能由抽象类直接创建,只可以通过抽象类派生出新的子类,再由其子类来创建对象。当一个类被声明为抽象类时,要在这个类前面加上修饰符abstract。 在抽象类中的成员方法可以包括一般方法和抽象方法。抽象方法就是以abstract修饰的方法,这种方法只声明返回的数据类型、方法名称和所需的参数,没有方法体,也就是说抽象方法只需要声明而不需要实现。当一个方法为抽象方法时,意味着这个方法必须被子类的方法所重写,否则其子类的该方法仍然是abstract的,而这个子类也必须是抽象的,即声明为abstract。 抽象类中不一定包含抽象方法,但是包含抽象方法的类一定要被声明为抽象类。抽象类本身不具备实际的功能,只能用于派生其子类。抽象类中可以包含构造方法,但是构造方法不能被声明为抽象。 抽象类不能用final来修饰,即一个类不能既是最终类又是抽象类。 abstract不能与private、static、final、native并列修饰同一个方法。 程序举例:abstract class Animal //定义抽象类 abstract void eat(); //定义抽象方法}class Horse extends Animal //定义继承Animal的子类 void eat() //重写父类的抽象方法 }class Dog extends Animal void eat() }class test}运行结果: 马吃草料! 狗吃骨头!

E. 如何用PowerMock进行Spy一个抽象类

1、用下面的的Mockito的API,我成功地做到这一点:public class CodeWithPrivateMethod { public void meaningfulPublicApi() { if (doTheGamble("Whatever", 1

F. 如何mock静态方法

因为Mockito使用继承的方式实现mock的,用CGLIB生成mock对象代替真实的对象进行执行,为了mock实例的方法,你可以在subclass中覆盖它,而static方法是不能被子类覆盖的,所以Mockito不能mock静态方法。
但PowerMock可以mock静态方法,因为它直接在bytecode上工作,类似这样:
import org.powermock.api.mockito.PowerMockito;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.moles.testng.PowerMockTestCase;
import org.testng.Assert;
import org.testng.annotations.Test;
@PrepareForTest(AbstractAnimal.class)
public class AbstractAnimalTest extends PowerMockTestCase {

G. .net中的抽象类和抽象方法,虚方法 详解

如果一个类里面有抽象方法,那么这个类一定是抽象类,所谓抽象方法,也就是只有一个名称定义而已,说白了,抽象方法没有实际的行为,只定义了名称。例子:abstract
public
void
function();//定义了一个名称为function方法名的抽象方法。另外,如果继承了抽象类,那么必须重写抽象类里面的所有抽象方法。
虚方法,这个是为了给子类继承重写方法而修饰的,也就是如果一个方法是虚方法的话,那么子类就可以重写这个方法。

H. 如何用c#定义一个抽象类

1、声明一个抽象方法使用abstract关键字。
2、一个类中可以包含一个或多个抽象方法。
3、抽象类中可以存在非抽象的方法。
4、抽象类不能被直接被实例化。
5、实现抽象类用“:”(冒号),实现抽象方法用override关键字。
6、抽象类可以被抽象类所继承,结果仍是抽象类。
7、抽象方法被实现后,不能更改修饰符。
DEMO:
public abstract class Person
{
public abstract void SayHello();
public void about()
{
Console.WriteLine("Abstract Demo");
}
}

public class Student : Person
{
public override void SayHello()
{
Console.WriteLine("SayHello");
}
}
class MainClass
{
public static void Main()
{
new Student().SayHello();
}
}

阅读全文

与如何mock一个抽象类的方法相关的资料

热点内容
中式棉袄制作方法图片 浏览:63
五菱p1171故障码解决方法 浏览:858
男士修护膏使用方法 浏览:546
电脑图标修改方法 浏览:607
湿气怎么用科学的方法解释 浏览:537
910除以26的简便计算方法 浏览:805
吹东契奇最简单的方法 浏览:704
对肾脏有好处的食用方法 浏览:98
电脑四线程内存设置方法 浏览:512
数字电路通常用哪三种方法分析 浏览:13
实训课程的教学方法是什么 浏览:525
苯甲醇乙醚鉴别方法 浏览:82
苹果手机微信视频声音小解决方法 浏览:700
控制箱的连接方法 浏览:75
用什么简单的方法可以去痘 浏览:789
快速去除甲醛的小方法你知道几个 浏览:803
自行车架尺寸测量方法 浏览:124
石磨子的制作方法视频 浏览:152
行善修心的正确方法 浏览:403
薯仔炖鸡汤的正确方法和步骤 浏览:276