मेरे पास निम्न विधि है और मैं इस पर जुनीट परीक्षण कैसे कर सकता हूं?

पार्सर मेरा कंस्ट्रक्टर है, जिसे मैं अपनी निम्नलिखित विधि के रिटर्न प्रकार के रूप में भी उपयोग कर रहा हूं।

चूंकि यह विधि स्ट्रिंग को तीन में विभाजित कर रही है, इसलिए इसके लिए मैं एक यूनिट टेस्ट केस लिखना चाहता हूं।

मैं किसी तरह जुनीट से परिचित हूं लेकिन इतना नहीं। किसी भी मार्गदर्शन/लिंक/सहायता की सराहना की जाएगी।

public class Example {

    public Parser thirdValueCleanup(String value) {
        String thirdValueValue = value.trim();
        System.out.println("TestData: "+thirdValueValue);
        String firstValueRegex = "[A-z]\\d[A-z]";
        String secondValueRegex = "\\d[A-z]\\d";
        String thirdValueRegex = "[SK|sk]{2}";

        Pattern firstValuePattern = Pattern.compile(".*\\W*("+firstValueRegex+")\\W*.*");
        Pattern secondValuePattern = Pattern.compile(".*\\W*("+secondValueRegex+")\\W*.*");
        Pattern thirdValuePattern = Pattern.compile(".*\\W*("+thirdValueRegex+")\\W*.*");

        String firstValue = "";
        String secondValue = "";
        String thirdValue = "";

        Matcher firstValueMatcher = firstValuePattern.matcher(thirdValueValue);
        if(firstValueMatcher.matches()) {
            firstValue = firstValueMatcher.group(1);  
        }

        Matcher secondValueMatcher = secondValuePattern.matcher(thirdValueValue);
        if(secondValueMatcher.matches()) {
            secondValue = secondValueMatcher.group(1); 
        }

        Matcher thirdValueMatcher = thirdValuePattern.matcher(thirdValueValue);
        if(thirdValueMatcher.matches()) {
            thirdValue = thirdValueMatcher.group(1);
        }

        String FirstValueName = firstValue + " " + secondValue;
        String thirdValueName = thirdValue;

        return new Parser(FirstValueName, thirdValueName);
    }

    public Parser(String firstValue, String secondValue) {
        this.firstValue = firstValue;
        this.secondValue = secondValue; 
    }

    public String getFirstValue() {
        return firstValue;
    }

    public String getSecondValue() {
        return secondValue;
    }
}

मैंने अपने परीक्षण में कोशिश की:

public final void testThirdValueCleanup() {

    System.out.println("retrieve");
    String factories = "SK S6V 7L4";
    Parser parser = new Parser();
    Parser expResult = SK S6V 7L4;
    Parser result = parser.thirdValueCleanup(factories);
    assertEquals(expResult, result);

}

मुझे यह त्रुटि मिली:

junit.framework.AssertionFailedError: expected:<SK S6V 7L4> but was:<com.example.Parser@379619aa>
    at junit.framework.Assert.fail(Assert.java:57)
    at junit.framework.Assert.failNotEquals(Assert.java:329)
    at junit.framework.Assert.assertEquals(Assert.java:78)
    at junit.framework.Assert.assertEquals(Assert.java:86)
    at junit.framework.TestCase.assertEquals(TestCase.java:253)
    at com.example.ParserTest.testthirdValueCleanup(ParserTest.java:29)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at junit.framework.TestCase.runTest(TestCase.java:176)
    at junit.framework.TestCase.runBare(TestCase.java:141)
    at junit.framework.TestResult$1.protect(TestResult.java:122)
    at junit.framework.TestResult.runProtected(TestResult.java:142)
    at junit.framework.TestResult.run(TestResult.java:125)
    at junit.framework.TestCase.run(TestCase.java:129)
    at junit.framework.TestSuite.runTest(TestSuite.java:252)
    at junit.framework.TestSuite.run(TestSuite.java:247)
    at org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:86)
    at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
    at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
0
Shaun 24 जुलाई 2017, 23:13

2 जवाब

सबसे बढ़िया उत्तर

ये कोशिश करें

@Test
    public final void testThirdValue() {

        System.out.println("retrieve");
        String factories = " BK M6B 7A4";
        Parser parser = new Parser();
        Parser province = parser.thirdValue(factories);

       assertEquals("M6B 7A4", province.getFirstValue()); 
       assertEquals("BK", province.getSecondValue());
    }
2
Bir Virk 9 अगस्त 2017, 23:04

किसी भी मार्गदर्शन/लिंक/सहायता की सराहना की जाएगी। धन्यवाद

एक सरल दृष्टिकोण के रूप में, आप निम्न पंक्तियों में कुछ आज़माना चाह सकते हैं। पहले चरण के रूप में टेस्ट क्लास बनाएं:

import org.junit.Test;
import static org.junit.Assert.assertEquals;

public class ExampleTest {
  Example example = new Example();

  @Test
  public void testThirdValueCleanup(){
    //pass some inputs to your function 
    //by exclicitly calling 
    //example.thirdValueCleanup(input params...);

    //a simple test case would be to check if it you get what your expect
    Parser expected = new Parser("set this one as it should be");
    assertEquals(example.thirdValueCleanup(some inputs...), expected);
  }
  /*
  * Here you can define more test cases
  */
}

आगे आप अपना परीक्षण चलाने के लिए एक वर्ग बना सकते हैं:

import org.junit.runner.JUnitCore;
import org.junit.runner.Result;
import org.junit.runner.notification.Failure;

public class TestRunner {
   public static void main(String[] args) {
      Result result = JUnitCore.runClasses(ExampleTest.class);

      for (Failure failure : result.getFailures()) {
         System.out.println(failure.toString());
      }

      System.out.println(result.wasSuccessful());
   }
}

अधिक जानकारी के लिए आप इस ट्यूटोरियल या जुनीट द्वारा प्रारंभ करना

0
lazyneuron 24 जुलाई 2017, 23:34