![](/img/trans.png)
[英]can anyone please let me know what does this line do in my python CODE:
[英]I am having problem creating a unit test in python. can anyone let me know what's my mistake?
有人帮我解决这个问题。 我能够运行 cars.py 文件,但出于某种原因,我不知道如何使用从 csv 文件中读取的值正确地进行单元测试。
Car Name,Price
Toyota Camry,28000
Lexus,35000
Range Rover,75000
Volswagen Beetle,32000
Audi A5,55000
Jeep,52000
Toyota RAV4,48000
Nissan Ultima,29500
Aston Martin,85000
import csv
import math
def expensive_Car(expensiveCar):
with open('Cars.csv', "r") as csvfile:
reader = csv.reader(csvfile, delimiter = ",")
header = next(reader)
line_count = 0
expensiveCarCompany= 0
for row in reader:
if line_count == 0:
line_count+=1
else:
line_count+=1
#Finding the most expensive car
if int(row[1]) > expensiveCar:
expensiveCarCompany, expensiveCar = row[0], int(row[1])
print(f'Expensive car company: {expensiveCarCompany} which is ${expensiveCar}.')
return expensiveCarCompany, expensiveCar
def cheapest_Car(cheapestCar):
with open('Cars.csv', "r") as csvfile:
reader = csv.reader(csvfile, delimiter = ",")
header = next(reader)
line_count = 0
cheapestCarCompany = 0
for row in reader:
if line_count == 0:
line_count+=1
else:
line_count+=1
#Finding the most cheapest car
if int(row[1]) < cheapestCar:
cheapestCarCompany, cheapestCar = row[0], int(row[1])
print(f'Cheapest car company: {cheapestCarCompany} which is ${cheapestCar}.')
return cheapestCarCompany, cheapestCar
if __name__ == "__main__":
cheapCar = cheapest_Car(math.inf)
priceyCar = expensive_Car(-math.inf)
##单元测试内容##
import unittest
import cars
class test_carPrice(unittest.TestCase):
def test_ExpensiveCar(self):
result = cars.expensive_Car(self)
self.assertEquals(result, 85000)
def test_CheapestCar(self):
self.assertIs(cars.cheapest_Car, 28000)
if __name__ == '__main__':
unittest.main()
这是第一次学习 python,我不知道我做错了什么,但它一直向我展示这些错误。
##Error message from cars.py :##
'>' not supported between instances of 'int' and 'test_carPrice'
##error message from unittest##
<function cheapest_Car at 0x000002013B511240> is not 28000
in test_CheapestCar self.assertIs(cars.cheapest_Car, 28000)
您的方法不需要参数,因为该方法是寻找最便宜或更昂贵的汽车的方法,而不是您提供给该方法的东西。
在您的测试中,您应该使用math.inf
对它们进行相同的调用,然后调用该方法,因为cars.cheapest_Car
本身就是 function,您不能将它与 int 进行比较
测试成为
def test_ExpensiveCar(self):
company, value = expensive_Car()
self.assertEquals(value, 85000)
def test_CheapestCar(self):
company, value = cheapest_Car()
self.assertEquals(value, 28000)
有了更好的命名,你就有了
def expensive_car():
with open('Cars.csv', "r") as csvfile:
reader = csv.reader(csvfile, delimiter=",")
next(reader)
expensive_car_company = 0
expensive_car = -math.inf
for row in reader:
if int(row[1]) > expensive_car:
expensive_car_company, expensive_car = row[0], int(row[1])
print(f'Expensive car company: {expensive_car_company} which is ${expensive_car}.')
return expensive_car_company, expensive_car
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.