Did you had the problem your mock must act like a bean? And you could  dịch - Did you had the problem your mock must act like a bean? And you could  Việt làm thế nào để nói

Did you had the problem your mock m

Did you had the problem your mock must act like a bean? And you could not create the object with the real implementation? And the interface was too large, so you would not create a innerclass for the test? I had this problem too. I solved it with the answer in mockito.

First of all we need an interface. On the interface we define a setter and a getter. Imagine we must be able to get back the value we set. The sample interface will be quite easy but with a little imagination we know the interface would have a lot more methods. And we don’t want to implement the class in our test.

The interface would look like this:

public interface SetGet {
void setString(String newString);
String getString();
}
We create the mock as usual:

SetGetSample mock = Mockito.mock(SetGetSample.class);
Following code snipped shows how to record the value which is set on setString.

doAnswer(new Answer() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
theString = (String) invocation.getArguments()[0];
return null;
}
}).when(mock).setString(anyString());
We need the Answer for recording the input and do not give something back. Because there is a void return value we have to do the answer with the command doAnswer since the when only can be used on methods which have a return value.

We know there is a string used as parameter so we can cast the first argument to String. In other cases we should check if it is an instance of this type. And we set our field to the given value. (Yep, you read correct we need a field in the test class to set the value.

Now the code to get the recorded value:

when(mock.getString()).thenAnswer(new Answer() {
@Override
public String answer(InvocationOnMock invocation) throws Throwable {
return theString;
}
});
You see, know we use the standard when but we use the thenAnswer instead of the thenReturn the difference is: answer will everytime be executed. Return remembers the value we told them in the when. And the following test will become a green bar.
0/5000
Từ: -
Sang: -
Kết quả (Việt) 1: [Sao chép]
Sao chép!
Bạn đã có vấn đề mô hình của bạn phải hành động như một đậu? Và bạn không thể tạo đối tượng với việc thực hiện thực tế? Và giao diện là quá lớn, vì vậy bạn sẽ không tạo ra một innerclass cho các bài kiểm tra? Tôi đã có vấn đề này quá. Tôi giải quyết nó với câu trả lời trong mockito.Trước hết chúng ta cần một giao diện. Trên giao diện chúng ta định nghĩa một setter và getter một. Hãy tưởng tượng chúng tôi phải có khả năng để có được trở lại các giá trị mà chúng tôi thiết lập. Giao diện của mẫu sẽ khá dễ dàng, nhưng với một chút trí tưởng tượng, chúng tôi biết các giao diện sẽ có rất nhiều phương pháp. Và chúng tôi không muốn để thực hiện các lớp học trong thử nghiệm của chúng tôi.Giao diện sẽ trông như thế này:khu vực giao diện SetGet {} void setString(String newString); Chuỗi getString();}Chúng tôi tạo ra mô hình như bình thường:SetGetSample giả = Mockito.mock(SetGetSample.class);Sau mã snipped cho thấy làm thế nào để ghi lại các giá trị được thiết lập trên setString.doAnswer (mới trả lời() {
@Override
public Object answer(InvocationOnMock invocation) throws Throwable {
theString = (String) invocation.getArguments()[0];
return null;
}
}).when(mock).setString(anyString());
We need the Answer for recording the input and do not give something back. Because there is a void return value we have to do the answer with the command doAnswer since the when only can be used on methods which have a return value.

We know there is a string used as parameter so we can cast the first argument to String. In other cases we should check if it is an instance of this type. And we set our field to the given value. (Yep, you read correct we need a field in the test class to set the value.

Now the code to get the recorded value:

when(mock.getString()).thenAnswer(new Answer() {
@Override
public String answer(InvocationOnMock invocation) throws Throwable {
return theString;
}
});
You see, know we use the standard when but we use the thenAnswer instead of the thenReturn the difference is: answer will everytime be executed. Return remembers the value we told them in the when. And the following test will become a green bar.
đang được dịch, vui lòng đợi..
Kết quả (Việt) 2:[Sao chép]
Sao chép!
đang được dịch, vui lòng đợi..
Kết quả (Việt) 3:[Sao chép]
Sao chép!
đang được dịch, vui lòng đợi..
 
Các ngôn ngữ khác
Hỗ trợ công cụ dịch thuật: Albania, Amharic, Anh, Armenia, Azerbaijan, Ba Lan, Ba Tư, Bantu, Basque, Belarus, Bengal, Bosnia, Bulgaria, Bồ Đào Nha, Catalan, Cebuano, Chichewa, Corsi, Creole (Haiti), Croatia, Do Thái, Estonia, Filipino, Frisia, Gael Scotland, Galicia, George, Gujarat, Hausa, Hawaii, Hindi, Hmong, Hungary, Hy Lạp, Hà Lan, Hà Lan (Nam Phi), Hàn, Iceland, Igbo, Ireland, Java, Kannada, Kazakh, Khmer, Kinyarwanda, Klingon, Kurd, Kyrgyz, Latinh, Latvia, Litva, Luxembourg, Lào, Macedonia, Malagasy, Malayalam, Malta, Maori, Marathi, Myanmar, Mã Lai, Mông Cổ, Na Uy, Nepal, Nga, Nhật, Odia (Oriya), Pashto, Pháp, Phát hiện ngôn ngữ, Phần Lan, Punjab, Quốc tế ngữ, Rumani, Samoa, Serbia, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenia, Somali, Sunda, Swahili, Séc, Tajik, Tamil, Tatar, Telugu, Thái, Thổ Nhĩ Kỳ, Thụy Điển, Tiếng Indonesia, Tiếng Ý, Trung, Trung (Phồn thể), Turkmen, Tây Ban Nha, Ukraina, Urdu, Uyghur, Uzbek, Việt, Xứ Wales, Yiddish, Yoruba, Zulu, Đan Mạch, Đức, Ả Rập, dịch ngôn ngữ.

Copyright ©2024 I Love Translation. All reserved.

E-mail: