Python Testing Cookbook
读书笔记
python
testing
Chapter 1: Using Unittest To Develop Basic Tests
配置虚拟环境
在开始写代码测试前,先创建一个独立的测试开发环境,这样可以避免各种包和现有开发环境互相影响,适合进行测试。
一般可以通过virtualenv
来创建虚拟环境,这里是官方文档和一篇写得比较好的中文版指南。如果你和我一样使用Anaconda
的Python发行版的话,可以使用conda create
命令来进行操作,指南戳这里。
Anaconda 是一个用来进行大规模数据处理,预测分析和科学计算的Python发行包,里面内置了iPython,NumPy,SciPy等近200种常用包,如果你用python用来做这些事情比较多的话,建议可以直接下载这个。官方地址:https://store.continuum.io/cshop/anaconda/
Asserting the basics
使用例子:
class RomanNumeralConverter(object):
def __init__(self, roman_numeral):
self.roman_numeral = roman_numeral
self.digit_map = {
"M":1000, "D":500, "C":100, "L":50, "X":10, "V":5, "I":1}
def convert_to_decimal(self):
val = 0
for char in self.roman_numeral:
val += self.digit_map[char]
return val
import unittest
class RomanNumeralConverterTest(unittest.TestCase):
def test_parsing_millenia(self):
value = RomanNumeralConverter("M")
self.assertEquals(1000, value.convert_to_decimal())
def test_parsing_century(self):
value = RomanNumeralConverter("C")
self.assertEquals(100, value.convert_to_decimal())
def test_parsing_half_century(self):
value = RomanNumeralConverter("L")
self.assertEquals(50, value.convert_to_decimal())
def test_parsing_decade(self):
value = RomanNumeralConverter("X")
self.assertEquals(10, value.convert_to_decimal())