पर तुलनाकर्ता का परीक्षण कैसे करें मुझे इस विधि का परीक्षण करने की आवश्यकता है - compare()
। क्या आपको सलाह मिल सकती है? मैं यह कैसे कर सकता हूं (सभी भाग अगर, अन्यथा, अगर, तो)।जूनिट टेस्ट
public class AbsFigure {
class AreaCompare implements Comparator<FigureGeneral> {
@Override
public int compare(FigureGeneral oneFigure, FigureGeneral twoFigure) {
double firstValue = oneFigure.area();
double secondValue = twoFigure.area();
int result = 0;
if (firstValue > secondValue)
result = 1;
else if (firstValue < secondValue)
result = -1;
else
result = 0;
return result;
}
}
इस recomendations - हम अगले तस्वीर (तुम लोग एक बहुत धन्यवाद!):
public AreaCompare areaCompare = new AreaCompare();
@Test
public void testEqual() {
FigureGeneral oneFigure = new Rectangle(2.0, 2.0, "triangle");
FigureGeneral twoFigure = new Rectangle(2.0, 2.0, "rectangle");
int result = areaCompare.compare(oneFigure, twoFigure);
assertTrue("expected to be equal", result == 0);
}
@Test
public void testGreaterThan() {
FigureGeneral oneFigure = new Triangle(2.0, 2.0, "triangle");
FigureGeneral twoFigure = new Rectangle(1.0, 1.0, "rectangle");
int result = areaCompare.compare(oneFigure, twoFigure);
assertTrue("expected to be greater than", result >= 1);
}
@Test
public void testLessThan() {
FigureGeneral oneFigure = new Rectangle(1.0, 1.0, "rectangle");
FigureGeneral twoFigure = new Triangle(2.0, 2.0, "triangle");
int result = areaCompare.compare(oneFigure, twoFigure);
assertTrue("expected to be less than", result <= -1);
सभी अब सामान्य परीक्षण है।
ध्यान दें कि एक तुलनित्र को अधिक मूल्यों के लिए बिल्कुल ठीक या बिल्कुल 1 के लिए वापस करने की आवश्यकता नहीं है। कोई भी नकारात्मक/सकारात्मक संख्या करेगा। – Puce
लेकिन आपको इस विधि को ओवरराइड करने की आवश्यकता है - निजी शून्य assertTrue (स्ट्रिंग संदेश, int परिणामValue, int comparValues) {} –
आप प्रत्येक परीक्षण में एकफिगर और दो फिगर को प्रारंभ कर रहे हैं। इसके परिणामस्वरूप या तो NullPointerException या कम से कम एक परीक्षण विफल हो जाएगा (चित्रा सामान्य के निर्माता के आधार पर)। – Chris311