1

Mockito: when … thenReturn แบบปริยาย และมีข้อยกเว้น

ผมอยากเขียน mock แบบได้ค่าอะไรมาก็ตามก็ให้ return 30; ไป แต่ถ้ารับ 20 มาให้ return 20; ไปก็เลยมาลองๆ ทำดูมั่วๆ ใช้ไม่ค่อยเป็นด้วย

package funfun;
import static org.mockito.Mockito.*;

public class Moki {
	public int foo(int x) {
		return 10;
	}

	public static void main(String[] args) {
		Moki ki = mock(Moki.class);
		when(ki.foo(anyInt())).thenReturn(30); // ปริยาย
		when(ki.foo(20)).thenReturn(20); // ยกเว้น
		System.out.println(ki.foo(20));
		System.out.println(ki.foo(30));
	}
}

ก็เลยเขียนได้ความแบบข้างบน พบว่าต้องเอาค่าปริยายขึ้นก่อน แล้วข้อยกเว้นตามทีหลัง