Tôi có một thử nghiệm đơn vị nơi tôi đang chế nhạo java.net.URI
lớp. Hơn nữa, tôi đang tạo một jMockit NonStrictExpectation
nơi tôi đang mong đợi yêu cầu URI.getPath()
và trả về một chuỗi cụ thể.Trả lại các giá trị khác nhau mỗi lần từ kỳ vọng jMockit
Mã đang được thử nghiệm gọi URI.getPath()
hai lần, trong đó tôi cần phải gửi một chuỗi khác nhau mỗi lần.
Đây là phương pháp thực tế của tôi được kiểm tra:
public void validateResource() {
// some code
URI uri = new URI(link1.getHref());
String path1 = uri.getPath();
// some more code
uri = new URI(link2.getHref());
String path2 = uri.getPath();
}
Đây là mã đơn vị kiểm tra:
@Mocked URI uri;
@Test
public void testValidateResource() {
new NonStrictExpectations() {
{
// for the first invocation
uri.getPath(); returns("/resourceGroup/1");
// for the second invocation [was hoping this would work]
uri.getPath(); returns("/resource/2");
}
};
myObject.validateResource();
}
Bây giờ, tôi muốn "/resource/2"
để được trở về từ kỳ vọng của tôi khi URI.getPath()
được gọi thứ hai thời gian. Nhưng nó luôn đạt đến kỳ vọng đầu tiên và trả về "/recourceGroup/1"
. Đây là vấn đề của tôi.
Làm cách nào để điều đó xảy ra? Tôi thực sự không thể sử dụng StrictExpectations
do một số lý do và phải gắn bó với NonStrictExpectations
.
Làm việc như một sự quyến rũ ... Cảm ơn :) –
Tuyệt vời, vui vì nó đã hoạt động! –
Liên kết tài liệu trong câu trả lời bị hỏng. Đây là [link] được cập nhật (http://jmockit.org/tutorial/Mocking.html#results) –