2017-02-07 6 views
0

Я использую JUnit 4 для тестирования этого простого блока кода:JUnit испытания- Assertion Logic

import java.util.StringTokenizer; 
import org.springframework.util.StringUtils; 
import junit.framework.TestCase; 


public class StringUtilsTestSuite extends TestCase { 

    public StringUtilsTestSuite(String name) { 
     super(name); 
    } 

    public void testCommaDelimitedListToStringArrayNullProducesEmptyArray(){ 
     String[] sa = StringUtils.commaDelimitedListToStringArray(null); 
     assertTrue("String array isn't null with null input", sa != null); 
     assertTrue("String array length == 0 with null input", sa.length == 0); 
    } 


} 

Тест работает без ошибок. Мой вопрос, почему первое утверждение успешно, я не мог понять логику предыдущего кода:

String[] sa = StringUtils.commaDelimitedListToStringArray(null); 

ответ

1

StringUtils.commaDelimitedListToStringArray() реализована таким образом, что он не возвращает нуль, когда дается пустая строка, он возвращает пустой массив.

например:

if (str == null) { 
    return new String[0]; 
} 
1

Из документации официального StringUtils -

Returns: 
an array of strings, or the empty array in case of empty input 

В вашем примере, sa[] теперь пуст, но не равно нулю, поэтому она проходит первое испытание утверждение.

http://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/util/StringUtils.html#commaDelimitedListToStringArray-java.lang.String-

0

начала с чтением documentation для любого использования методов. Если вам интересно посмотреть, как оно было реализовано, я бы предложил grepcode.

Смежные вопросы