假设框架的csv扩展
hypothesis-csv的Python项目详细描述
hypothesis-csv
是对假设框架的扩展。这个框架的目标是提供一个灵活的工具。
对接受csv文件作为输入的软件执行生成测试/基于属性的测试。
说明
假设csv设计时考虑了两个主要用例:
- 测试软件,它接受广泛的csv格式,并且不对内容进行假设(即csv解析器)
- 接受非常具体的csv格式并对内容、类型和标题字段进行假设的测试软件。
它提供了两种策略data_rows
和csv
来实现这个目标,这两种策略都包含在策略模块中。
有关更多详细信息,请参阅他们的文档和示例。
示例
生成任意的非空csv
fromhypothesis_csv.strategiesimportcsv@given(csv=csv())deftest_my_csv_parse(csv):parsed_csv=my_csv_parser(csv)assert...
生成给定大小的csv(5列x 20行)
fromhypothesis_csv.strategiesimportcsv@given(csv=csv(lines=20,header=5))deftest_my_csv_parse(csv):parsed_csv=my_csv_parser(csv)assertparsed_csv.num_columns==5assertparsed_csv.num_rows==20
生成标题
的csvfromhypothesis_csv.strategiesimportcsv@given(csv=csv(header=["timestamp","val_1","val_2"]))deftest_my_csv_parse(csv):parsed_csv=my_csv_parser(csv)assertparsed_csv.num_columns==3
使用给定类型的列生成csv
fromhypothesis_csv.strategiesimportcsv@given(csv=csv(columns=[text(),int(),float()]))deftest_my_csv_parse(csv):parsed_csv=my_csv_parser(csv)assertparsed_csv.num_columns==3
使用给定方言生成csv
fromhypothesis_csv.strategiesimportcsv@given(csv=csv(columns=[text(),int(),float()],dialect="excel-tab"))deftest_my_csv_parse(csv):...
使用drawns方言生成csv
fromhypothesis_csv.strategiesimportcsv@given(csv=csv(columns=[text(),int(),float()],dialect=None))deftest_my_csv_parse(csv):...