2017-12-14 1 views
1

필자의 기능에 대한 테스트를 작성해야합니다. 지금은 내 반환의 유형을 확인 :테스트에서 반환 값의 유형을 확인하는 방법

assert type(main.get_values(path)) == list 

내가 반환되는 값뿐만 아니라 list하지만 list of strings 경우 어떻게 든 확인할 수 있습니까? 저는 파이썬에 대해 새로운 것이므로 매우 불충분 한 질문 일 수 있습니다.

+2

처럼 데이터가없는 경우 경우 테스트가 통과하게됩니다 변수의 내용 이것은 암시 적으로 유형을 테스트합니다. – quamrana

+0

@quamrana,'== [ 'test', 'test2']'와 유사합니까? 또는 어떻게 작성해야합니까? –

+1

예, 그렇습니다. 나는 보통'main'에 어떤 데이터를 제공하여 assert에서'main.get_values ​​(path)'를 호출 할 때'[ 'test,'test2 ']' – quamrana

답변

2

편집 : quamrana가 언급했듯이 테스트 값은 암시 적으로 유형을 확인하며 내가 일반적으로하는 것입니다. 그러나 여기에 원래 질문에 대한 대답이 있습니다.

많은 언어의 특정 배열 유형과 달리, Python 목록에는 데이터 유형의 조합을 포함 할 수 있습니다. 그러므로 이것을 달성하기위한 가장 명확한 (성가 시지만) 방법은 목록의 각 값을 검사하여 문자열인지 확인하는 것입니다. 예를 들어,

# Check to see if data is a list, as before 
assert type(my_data) is list 

# Now check each value in your data is a string 
for value in my_data: 
    assert type(value) is str 

이이

my_data = ["h", "e", "l", "l", "o"] 

같은 데이터를하지만 내가 테스트 보통 것 프로그래머로서이

my_data = ["h", "e", 1, ["nested", "list"], {"dictionary":"here"}] 
+0

Mhm, 이미 완료했습니다. 설명 해줘서 고마워. –

관련 문제