2017-12-14 9 views
1

私の関数のテストを書く必要があります。今、私は私の戻り値の型のみをチェックします。返される値はlistが、list of stringsだけではない場合テストで戻り値の型をチェックする方法

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

は私が何とか確認することができますか?私はPythonで新しいので、それはかなり不自由な質問かもしれません。

+2

のようなデータを持っていない場合は場合は、あなたのテストを通過できるようになります変数の内容これは、暗黙的に型をテストします。 – quamrana

+0

@quamrana、 '= '[' test '、' test2 ']'のように?または私はそれをどのように書きますか? –

+1

はい、そうです。私は通常 'main 'にいくつかのデータを提供して、assertで' main.get_values(path) 'を呼び出すと' [' test、 'test2'] ' – quamrana

答えて

2

EDIT:言及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、私はすでにそれを行いました。説明をありがとう。 –

関連する問題