How to write JUnit test code in Java for the function finding Sum of the numbers from the given number ?

This is the JUnit 5 solution to cover all kinds of inputs and outputs to find the sum of the digits from a given number. This Unit test executes tests for the ‘SumDigits’ function available in the class ‘SumofDigitsJUnit’.

package migrate;

import org.junit.Assert;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;

class SumofDigitsJUnit {

	SumDigits_Using_Corelogic SDUcore;
	SumDigits_Using_LambdaExpression SDULexp;
	SumDigits_Using_Streams SDUstreams;
     
    @BeforeEach
    void setUp() throws Exception {
    	SDUcore = new SumDigits_Using_Corelogic();
    	SDULexp = new SumDigits_Using_LambdaExpression();
    	SDUstreams = new SumDigits_Using_Streams();
    }
 
    @AfterEach
    void tearDown() throws Exception {
    }
 
    @Test
    @DisplayName("Positive inputs should work")   
    void test1() {
        Assert.assertEquals(11,SDUcore.SumDigits(173));
        Assert.assertEquals(11,SDULexp.SumDigits(29));
        Assert.assertEquals(4,SDUstreams.SumDigits(31));
    }
    
    @Test
    @DisplayName("Negative inputs should work")   
    void test2() {
        Assert.assertEquals(-9,SDUcore.SumDigits(-351));
        Assert.assertEquals(-19,SDULexp.SumDigits(-6319));
        Assert.assertEquals(-10,SDUstreams.SumDigits(-1405));
    }
     
    @Test
    @DisplayName("Negative inputs should work")   
    void test3() {
        Assert.assertNotEquals(5,SDUcore.SumDigits(27));
        Assert.assertNotEquals(6,SDULexp.SumDigits(455));
        Assert.assertNotEquals(55,SDUstreams.SumDigits(10000));
    }
     
    @Test
    @DisplayName("null inputs - Special case")   
    void test4() {
        Assert.assertEquals(0,SDUcore.SumDigits(null));
        Assert.assertEquals(0,SDULexp.SumDigits(null));
        Assert.assertEquals(0,SDUstreams.SumDigits(null));
    } 
}
Output:
Mar. 09, 2024 6:35:31 P.M. migrate.SumDigits_Using_Corelogic SumDigits
INFO: This method 'SumDigits' called from the Class 'migrate.SumofDigitsJUnit'
Mar. 09, 2024 6:35:31 P.M. migrate.NumberInput validateInputs
INFO: This method 'validateInputs' called from the Class 'migrate.SumDigits_Using_Corelogic'
Mar. 09, 2024 6:35:31 P.M. migrate.NumberInput validateInputs
INFO: The input is validated Successfully
The sum of digits from this number = 173 is =11
Mar. 09, 2024 6:35:31 P.M. migrate.SumDigits_Using_LambdaExpression SumDigits
INFO: This method 'SumDigits' called from the Class 'migrate.SumofDigitsJUnit'
Mar. 09, 2024 6:35:31 P.M. migrate.NumberInput validateInputs
INFO: This method 'validateInputs' called from the Class 'migrate.SumDigits_Using_LambdaExpression'
Mar. 09, 2024 6:35:31 P.M. migrate.NumberInput validateInputs
INFO: The input is validated Successfully
The value of numValue is (Before) 29
The value of numValue is (after) 29
The value of sumDigits is (Before) 11
The value of sumDigits is (after) 11
The sum of digits from this number = 29 is =11
Mar. 09, 2024 6:35:31 P.M. migrate.SumDigits_Using_Streams SumDigits
INFO: This method 'SumDigits' called from the Class 'migrate.SumofDigitsJUnit'
Mar. 09, 2024 6:35:31 P.M. migrate.NumberInput validateInputs
INFO: This method 'validateInputs' called from the Class 'migrate.SumDigits_Using_Streams'
Mar. 09, 2024 6:35:31 P.M. migrate.NumberInput validateInputs
INFO: The input is validated Successfully
The sum of digits from this number = 31 is =4
Mar. 09, 2024 6:35:31 P.M. migrate.SumDigits_Using_Corelogic SumDigits
INFO: This method 'SumDigits' called from the Class 'migrate.SumofDigitsJUnit'
Mar. 09, 2024 6:35:31 P.M. migrate.NumberInput validateInputs
INFO: This method 'validateInputs' called from the Class 'migrate.SumDigits_Using_Corelogic'
The sum of digits from this number = -351 is =-9
Mar. 09, 2024 6:35:31 P.M. migrate.NumberInput validateInputs
INFO: The input is validated Successfully
Mar. 09, 2024 6:35:31 P.M. migrate.SumDigits_Using_LambdaExpression SumDigits
INFO: This method 'SumDigits' called from the Class 'migrate.SumofDigitsJUnit'
Mar. 09, 2024 6:35:31 P.M. migrate.NumberInput validateInputs
INFO: This method 'validateInputs' called from the Class 'migrate.SumDigits_Using_LambdaExpression'
Mar. 09, 2024 6:35:31 P.M. migrate.NumberInput validateInputs
INFO: The input is validated Successfully
The value of numValue is (Before) -6319
The value of numValue is (after) 6319
The value of sumDigits is (Before) 19
The value of sumDigits is (after) -19
The sum of digits from this number = -6319 is =-19
Mar. 09, 2024 6:35:31 P.M. migrate.SumDigits_Using_Streams SumDigits
INFO: This method 'SumDigits' called from the Class 'migrate.SumofDigitsJUnit'
Mar. 09, 2024 6:35:31 P.M. migrate.NumberInput validateInputs
INFO: This method 'validateInputs' called from the Class 'migrate.SumDigits_Using_Streams'
Mar. 09, 2024 6:35:31 P.M. migrate.NumberInput validateInputs
INFO: The input is validated Successfully
The sum of digits from this number = 1405 is =-10
Mar. 09, 2024 6:35:31 P.M. migrate.SumDigits_Using_Corelogic SumDigits
INFO: This method 'SumDigits' called from the Class 'migrate.SumofDigitsJUnit'
Mar. 09, 2024 6:35:31 P.M. migrate.NumberInput validateInputs
INFO: This method 'validateInputs' called from the Class 'migrate.SumDigits_Using_Corelogic'
Mar. 09, 2024 6:35:31 P.M. migrate.NumberInput validateInputs
INFO: The input is validated Successfully
The sum of digits from this number = 27 is =9
Mar. 09, 2024 6:35:31 P.M. migrate.SumDigits_Using_LambdaExpression SumDigits
INFO: This method 'SumDigits' called from the Class 'migrate.SumofDigitsJUnit'
Mar. 09, 2024 6:35:31 P.M. migrate.NumberInput validateInputs
INFO: This method 'validateInputs' called from the Class 'migrate.SumDigits_Using_LambdaExpression'
The value of numValue is (Before) 455
The value of numValue is (after) 455
The value of sumDigits is (Before) 14
The value of sumDigits is (after) 14
Mar. 09, 2024 6:35:31 P.M. migrate.NumberInput validateInputs
INFO: The input is validated Successfully
The sum of digits from this number = 455 is =14
Mar. 09, 2024 6:35:31 P.M. migrate.SumDigits_Using_Streams SumDigits
INFO: This method 'SumDigits' called from the Class 'migrate.SumofDigitsJUnit'
Mar. 09, 2024 6:35:31 P.M. migrate.NumberInput validateInputs
INFO: This method 'validateInputs' called from the Class 'migrate.SumDigits_Using_Streams'
Mar. 09, 2024 6:35:31 P.M. migrate.NumberInput validateInputs
INFO: The input is validated Successfully
The sum of digits from this number = 10000 is =1
Mar. 09, 2024 6:35:31 P.M. migrate.SumDigits_Using_Corelogic SumDigits
INFO: This method 'SumDigits' called from the Class 'migrate.SumofDigitsJUnit'
The sum of digits from this number = null is =0
Mar. 09, 2024 6:35:31 P.M. migrate.NumberInput validateInputs
INFO: This method 'validateInputs' called from the Class 'migrate.SumDigits_Using_Corelogic'
Mar. 09, 2024 6:35:31 P.M. migrate.SumDigits_Using_LambdaExpression SumDigits
INFO: This method 'SumDigits' called from the Class 'migrate.SumofDigitsJUnit'
Mar. 09, 2024 6:35:31 P.M. migrate.NumberInput validateInputs
INFO: This method 'validateInputs' called from the Class 'migrate.SumDigits_Using_LambdaExpression'
The given number is =null
The sum of digits from this number = null is =0
Mar. 09, 2024 6:35:31 P.M. migrate.SumDigits_Using_Streams SumDigits
INFO: This method 'SumDigits' called from the Class 'migrate.SumofDigitsJUnit'
Mar. 09, 2024 6:35:31 P.M. migrate.NumberInput validateInputs
INFO: This method 'validateInputs' called from the Class 'migrate.SumDigits_Using_Streams'
The sum of digits from this number = null is =0

Comments

2 responses to “How to write JUnit test code in Java for the function finding Sum of the numbers from the given number ?”

Leave a reply to How to find Sum of digits from the given number ? – Java Ice Breakers Cancel reply