擅长:python、mysql、java
<p>每当我觉得需要嘲笑时,我首先会问自己
按照以下思路重构代码是可行的:</p>
<ol>
<li><p>在算法上很重要的东西,我可能想进行单元测试
用实际的断言。</p></li>
<li><p>东西太简单了,我要么(a)几乎不需要测试,要么(b)可以
用一个只执行代码的端到端测试进行充分测试
不做任何断言。</p></li>
</ol>
<p>例如:</p>
<pre><code>####
# Hardly worth testing.
####
def parse_sectors_from_csv():
file_path = sectors_file_path()
with open(file_path) as fh:
return do_parse_sectors_from_csv(fh)
####
# Easily tested without mocks.
####
def do_parse_sectors_from_csv(fh):
reader = csv.DictReader(fh)
return do_parse_sectors_from_csv(reader)
def sectors_file_path():
return os.path.join(settings.BASE_DIR, 'sector', 'fixtures', 'sectors.csv')
def parse_sectors_from_csv(rows):
return [
{
'model': 'sector.sector',
'id': index,
'fields': {
'name': row.get('Sector'),
'slug': slugify(row['Sector']),
'type_id': row.get('Type_Id')
}
}
for index, row in enumerate(rows, 1)
]
</code></pre>