से नहीं है मुझे Easymock 3.0 और JUnit 4.8.2 के साथ एक अजीब समस्या है। समस्या तब होती है जब मैवेन से परीक्षण निष्पादित करते हैं और ग्रहण से नहीं।अपेक्षित से अधिक मैचर्स रिकॉर्ड किए गए - Easymock मैवेन से विफल रहता है और ग्रहण
इस इकाई परीक्षण (बहुत सरल) है:
...
protected ValueExtractorRetriever mockedRetriever;
...
@Before
public void before() {
mockedRetriever = createStrictMock(ValueExtractorRetriever.class);
}
@After
public void after() {
reset(mockedRetriever);
}
@Test
public void testNullValueExtractor() {
expect(mockedRetriever.retrieve("PROP")).andReturn(null).once();
replay(mockedRetriever);
ValueExtractor retriever = mockedRetriever.retrieve("PROP");
assertNull(retriever);
assertTrue(true);
}
और मैं मिलता है:
java.lang.IllegalStateException: 1 matchers की उम्मीद, 2 दर्ज की गई।
अजीब बात यह है कि मैं एक तर्क मैचर का उपयोग भी नहीं कर रहा हूं। और यह परीक्षण का एकमात्र तरीका है! और इसे सबसे खराब बनाने के लिए यह ग्रहण से काम करता है और मेवेन से विफल रहता है!
मैं कुछ लिंक जो मुझे एक जवाब के साथ प्रदान किया नहीं मिला:
मैं इकाई परीक्षण को बदलते हैं और एक और विधि जोड़ने (जो करता है एक तर्क matcher का उपयोग करें):
@Test
public void testIsBeforeDateOk() {
expect(mockedRetriever.retrieve((String)anyObject())).andReturn(new PofExtractor()).anyTimes();
replay(this.mockedRetriever);
FilterBuilder fb = new FilterBuilder();
assertNotNull(fb);
CriteriaFilter cf = new CriteriaFilter();
assertNotNull(cf);
cf.getValues().add("2010-12-29T14:45:23");
cf.setType(CriteriaType.DATE);
cf.setClause(Clause.IS_BEFORE_THE_DATE);
CriteriaQueryClause clause = CriteriaQueryClause.fromValue(cf.getClause());
assertNotNull(clause);
assertEquals(CriteriaQueryClause.IS_BEFORE_THE_DATE, clause);
clause.buildFilter(fb, cf, mockedRetriever);
assertNotNull(fb);
Filter[] filters = fb.getFilters();
assertNotNull(filters);
assertEquals(filters.length, 1);
verify(mockedRetriever);
logger.info("OK");
}
यह लास टी विधि परीक्षण पास करती है लेकिन दूसरी नहीं। यह कैसे संभव है!?!?!
सादर, निको
अधिक लिंक:
"bartling.blogspot.com/2009/11/using-argument-matchers-in-easymock-and.html"
"www .springone2gx.com/ब्लॉग/scott_leberknight/2008/09/the_n_matchers_expected_m_recorded_problem_in_easymock "
" stackoverflow.com/questions/4605997/3-matchers-expected-4-recorded "
क्या आप m2eclipse का उपयोग कर रहे हैं? आपका पोम कैसा दिखता है? – khmarbaise
मैं हूं। दुर्भाग्य से पोम काफी बड़ा है क्योंकि यह कई परीक्षणों का एक परीक्षण है जो काम करता है (जो इसे और भी अजीब बनाता है) कई मैवेन मॉड्यूल में से एक से। सबसे अजीब चीज यह है कि अगर मैं मेवेन-सिक्योरफायर-रिपोर्ट सक्षम करता हूं और थ्रेड को समानांतर में चलाता हूं, तो यह काम करता है! लेकिन यह पर्यावरण पर निर्भर करता है (हडसन विफल रहता है लेकिन यह मेरे देव बॉक्स में काम करता है) – Nico
क्या आपने अपना पूरा स्थानीय मैवेन भंडार हटा दिया है और इसे अपने देव-बॉक्स पर खरोंच से परीक्षण किया है? – khmarbaise