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));
	}
}

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

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

  1. ดูไปดูมามันเสียวๆ ชอบกล จริงจะใช้อะไรแบบ ki.foo(not(eq(20)) อะไรแบบนี้น่าจะดีกว่า

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out / เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out / เปลี่ยนแปลง )

Google+ photo

You are commenting using your Google+ account. Log Out / เปลี่ยนแปลง )

Connecting to %s