0
我正在測試一些代碼,並想測試以查看API是否格式正確。下面是我用來測試的字典。TypeError:字符串索引必須是整數,而不是str。我沒有看到什麼?
self.test_query_values_positive = {
'DriverAge' : 33,
'PickUpCity' : 'Tampa',
'CarType' : 'luxury'
}
這裏是有問題的單元測試:
def testQueryCreationPositive(self):
test_query = self.testDBM.create_http_query(self.test_query_values_positive)
self.assertEqual("some.api/findCar?city=Tampa&class=luxury",
self.testDBM.create_http_query(test_query))
這裏是我從testDBM對象調用
def create_http_query(self, slots):
base_url = 'some.api/findCar?'
query = None
if self.verify_age(slots['DriverAge']):
pickup = slots['PickUpCity'].title()
car_type = slots['CarType'].lower()
query = '{0}city={1}&class={2}'.format(base_url, pickup, car_type)
else:
query = None
return query
從這個功能,我得到一個類型錯誤的如下所示:
TypeError: string indices must be integers, not str
我沒有看到什麼?我在它下面有一個負面測試,它運行得非常好,但這不是。這是爲什麼?
編輯:我忘了說,有問題的路線是:
if self.verify_age(slots['DriverAge']):
似乎跑得比罰款等。
'test_query'是字符串或'None',所以在執行下一行中,'create_http_query'的'slots'參數可以是一個字符串或'None'(在你的情況下是字符串)。 – vaultah