java EasyMock对于有参无返回至的方法怎么模拟?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java EasyMock对于有参无返回至的方法怎么模拟?相关的知识,希望对你有一定的参考价值。

无参无返回值得方法可以使用EasyMock.expectLastCall()没有问题

EasyMock类的文档里说了:

public static <T> IExpectationSetters<T> expectLastCall()

Returns the expectation setter for the last expected invocation in the
current thread. This method is used for expected invocations on void
methods.

userService.addUser(newUser1);/* expect */ 
EasyMock.expectLastCall();
EasyMock.replay(dbMapper);
userService.addUser(newUser1);


还可以使用andAnswer:

mockObject.someMethod(eq(param1), eq(param2));
expectLastCall().andAnswer(new IAnswer() 
    public Object answer() 
        //supply your mock implementation here...
        SomeClass arg1 = (SomeClass) getCurrentArguments()[0];
        AnotherClass arg2 = (AnotherClass) getCurrentArguments()[1];
        arg1.doSomething(blah);
        //return the value to be returned by the method (null for void)
        return null;
    
);

参考技术A EasyMock 是你定义的一个类吗? public static void expectLastCall(); 当调用时EasyMock.expectLastCall() 就可以了。

Java的有参无参和变量

1.有参数无返回值的方法

无参数无返回值的方法是形式最为简单的一种方法,但是功能上存在很大的局限性,若要实现更加灵活的功能,可以为方法提供参数,这样会大大提升方法的灵活性。

语法:访问修饰符  void  方法名(形式参数列表)   

                                         方法体;

调用语法:方法名(实际参数列表);

示例:实现按指定次数输出指定信息。

public class ShowMsgDemo 
	//定义方法实现按指定次数输出指定信息
	public void showMsg(String message, int count) 
		for (int i = 0; i < count; i++) 
			System.out.println(message);
		
	
	public static void main(String[] args) 
		Scanner sc = new Scanner(System.in);
		System.out.println("请输入要输出的信息:");
		String msg = sc.nextLine();//不会在缓冲区保留\\r
		System.out.println("请输入要输出的次数:");
		int nums = sc.nextInt();
		//调用方法
		ShowMsgDemo smd = new ShowMsgDemo();
		smd.showMsg(msg, nums);
	

 2.参数传递过程

方法参数是主调方法与被调方法进行数据传递的主要渠道,方法的参数分为形式参数和实际参数两种:

  • 形式参数出现在方法定义中,在整个方法内部有效。
  • 实际参数出现在主调方法中,其作用是将实参的值传递给被调方法的形参,从而实现主调方法向被调方法传递数据的功能。

 

要实现正确的参数传递,形参列表与实参列表在参数的个数、类型以及顺序上必须一一对应。 

 3.成员变量和局部变量

类中定义的属性为成员变量,方法内部定义的变量为局部变量。

 

 

 成员变量

        成员变量指的是在类范围里定义的变量,也就是属性。

        语法:实例.实例成员名

  每个实例的实例成员被实例所拥有,相同类型类的不同实例,它们的实例字段互不影响。

示例:

public static void main(String[] args) 
	People p1 = new People();
	p1.name = "张三";
	p1.money = 1000;
	People p2 = new People();
	p2.name = "李四";
	p2.money = 5000;
	// 调用方法
	p1.showMoney();
	p2.showMoney();

 

局部变量 

  局部变量分为三类:

  • 方法的参数
  • 方法内部声明的变量
  • 代码块中声明的变量。

示例:成员变量和局部变量同名

//成员变量
String name = "zhangsan";
	
public void test()
	//局部变量
	String name = "lisi";
	System.out.println(name);

public static void main(String[] args) 
	SameNameDemo snd = new SameNameDemo();
	snd.test();

总结:

  • 定义方法要确定访问修饰符、返回类型、方法名和参数列表。  
  • 方法的参数分为形参与实参,形参是方法定义时在参数列表中声明的参数,实参是调用方法时传给形参的值。  
  • 类中的变量分为成员变量和局部变量,成员变量是类的属性,局部变量是指在方法中或方法语句块中定义的变量。   成
  • 员变量与局部变量的作用域不同,成员变量能在类的所有方法中使用,局部变量只能在声明它的方法中或声明它的语句块中使用。

以上是关于java EasyMock对于有参无返回至的方法怎么模拟?的主要内容,如果未能解决你的问题,请参考以下文章

Java的有参无参和变量

Java的有参无参和变量

Java的有参无参和变量

Java的有参无参和变量

JavaSE-22.1.3Lambda表达式练习:有参无返回值抽象方法

有参无返回值方法-计算商品折扣后价格并打印