Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将所有方法导入unittest文件_Python_Unit Testing_Parsing - Fatal编程技术网

Python 将所有方法导入unittest文件

Python 将所有方法导入unittest文件,python,unit-testing,parsing,Python,Unit Testing,Parsing,我试图找出为文件解析器编写单元测试的最佳结构。我的parser.py文件如下所示: import re import sys import glob from datetime import datetime import csv def main(): # does something def normalizeGender(gender): # does something def normalizeDate(date): # does something de

我试图找出为文件解析器编写单元测试的最佳结构。我的
parser.py
文件如下所示:

import re
import sys
import glob
from datetime import datetime
import csv

def main():
    # does something

def normalizeGender(gender):
   # does something

def normalizeDate(date):
    # does something

def parseLine(record, delimiter):
    # does something

def formatRecords(record_list):
    # does something
import unittest


class ParserTest(unittest.TestCase):
    # Returns True or False.
    def test(self):
            self.assertTrue(True)

if __name__ == '__main__':
  unittest.main()
等等

我有
tests
dir,在
parser\u test.py
文件中,看起来像这样:

import re
import sys
import glob
from datetime import datetime
import csv

def main():
    # does something

def normalizeGender(gender):
   # does something

def normalizeDate(date):
    # does something

def parseLine(record, delimiter):
    # does something

def formatRecords(record_list):
    # does something
import unittest


class ParserTest(unittest.TestCase):
    # Returns True or False.
    def test(self):
            self.assertTrue(True)

if __name__ == '__main__':
  unittest.main()

现在,如果我想测试解析器中的所有方法,是否应该一次导入它们?有些东西告诉我,它们应该包装成某种模块

以下答案基于我的工具偏好和我通常遵循的实践:

  • 我将使用它来实现测试
  • 我会为每个函数至少执行一个测试:
    test\u normalizeGender
    test\u normalizeDate
    test\u normalizeDate
    test\u parseLine
    test\u formatRecords
    。但是,如果您的代码中有带有多个分支的if语句,请确保尝试涵盖这些分支的可能情况。此外,如果您有for循环,我将实现对无元素、一个元素和多个元素的测试
  • 我将把所有的测试放在同一个文件中,因为它们是相关的
  • 请记住,在实现单元测试时,您正在测试一个单元,因此不需要在同一测试中验证所有解析器的功能。此外,您应该模拟/修补对象、方法或函数,以便于测试


    我希望这有帮助。

    parser\u test.py
    应该只使用
    import parser
    。那么,问题是如何让您的测试运行人员知道如何查看
    parser.py
    所在的目录。@user7496931,您的问题的答案可能主要基于观点