2015-11-15 31 views
1

在使用unittest模块时是否存在Python命名测试的约定。我都知道,从unittest.TestCase继承的类内的每个方法应与试验开始,但我不知道什么是更好的:Python:测试的约定名称

1简短的描述名称没有文档字符串

def test_for_a_date_on_a_weekday(self): 
     customer_type = "Regular" 
     dates = ["16Mar2009(mon)"] 
    self.assertEquals(self.hotel_reservation_system.find_cheapest_hotel(customer_type, dates), "Lakewood") 

2。数字跟在单词测试之后,用解释测试的文档字符串。

def test_1(self): 
    """Tests the cheapest hotel when the date is on a weekday. 
    """ 
    customer_type = "Regular" 
    dates = ["16Mar2009(mon)"] 
    self.assertEquals(self.hotel_reservation_system.find_cheapest_hotel(customer_type, dates), "Lakewood") 

哪个选项是非常理想的,如果其中任何一个我应该怎么用?

+0

总是选择描述性的。您的测试是一种提供文档形式的方式,以提供有关代码如何工作以及测试内容的上下文。它使它更具可读性。 – idjaw

+0

因此,这意味着选项二,或者我应该混合一个文档字符串,即一个简短的描述性名称? – lmiguelvargasf

+2

您也不一定需要在每种测试方法中都有一个文档字符串。你的方法的名称应该是描述性的,但简洁。然而,这绝对是一种意见,我相信每一方都有争论。 :) – idjaw

回答

1
Generally it is preferable to increase readability by : 
    - choosing an adequate name  
    - describing how it works 

请选择您的名字,使它变得简短和具有描述性。为了便于阅读,请使用snake_case。例如:test_week_date。

始终在您的函数中包含文档字符串。如果姓名不够清楚,或者他不真正了解该方法的作用/她是如何做的,这将允许读者获得所有必要的信息。

结论:使用文档字符串的简短描述性(snake_case)名称。

+0

不适用于方法名称。您应该使用snake_case:'test_week_date',根据PEP8:“函数名称应该是小写字母,必要时用下划线分隔以提高可读性。” – idjaw

+0

对!我习惯于使用camelCase作为常规函数,snake_case作为方法(我认为是这样)。我会编辑; – TanguyH

+0

通常,在Python中,您将看到类名称和异常名称的驼峰案例:'MyClass','MyException'。 – idjaw