कक्षा मैं परीक्षण करना चाहते हैं:मैंने डूटरर्न का इस्तेमाल किया, मॉकिटो अभी भी अज्ञात वर्ग के अंदर वास्तविक कार्यान्वयन क्यों कहेंगे?
import com.google.common.cache.CacheBuilder;
import com.google.common.cache.CacheLoader;
import com.google.common.cache.LoadingCache;
public class Subject {
private CacheLoader<String, String> cacheLoader = new CacheLoader<String, String>() {
@Override
public String load(String key)
throws Exception {
return retrieveValue(key);
}
};
private LoadingCache<String, String> cache = CacheBuilder.newBuilder()
.build(cacheLoader);
public String getValue(String key) {
return cache.getUnchecked(key);
}
String retrieveValue(String key) {
System.out.println("I should not be called!");
return "bad";
}
}
यहाँ मेरी परीक्षण का मामला
import static org.junit.Assert.assertEquals;
import static org.mockito.Matchers.anyString;
import static org.mockito.Mockito.doReturn;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.InjectMocks;
import org.mockito.Spy;
import org.mockito.runners.MockitoJUnitRunner;
@RunWith(MockitoJUnitRunner.class)
public class SubjectTest {
String good = "good";
@Spy
@InjectMocks
private Subject subject;
@Test
public void test() {
doReturn(good).when(subject).retrieveValue(anyString());
assertEquals(good, subject.getValue("a"));
}
}
मैं
org.junit.ComparisonFailure:
Expected :good
Actual :bad
क्या आप सार्वजनिक विधि को 'पुनर्प्राप्त कर सकते हैं' और देख सकते हैं कि यह काम करता है या नहीं? – KDM
@ केडीएम अभी भी काम नहीं कर रहा है। सुझाव – ssgao