我有一个非常简单的测试:
from unittest.mock import Mock
from urbansearch import main
main.ArgumentParser = Mock()
def test_parse_arguments():
main.parse_arguments()
main.ArgumentParser.add_argument.assert_called()
Run Code Online (Sandbox Code Playgroud)
它测试以下方法:
from argparse import ArgumentParser
def parse_arguments():
parser = ArgumentParser(description='The TU Delft Urbansearch CLI')
parser.add_argument('-d', '--directory',
help='Source files directory containing files with '
+ 'indices')
return parser.parse_args()
Run Code Online (Sandbox Code Playgroud)
测试时我收到错误:AttributeError:assert_called.为什么我会收到此错误,如何解决此问题?我也尝试了很多不同的变化,但我总是得到或多或少相同的结果.
编辑:测试位于Urbansearch/tests/test_main.py中.该方法位于Urbansearch/urbansearch/main.py.
我得到的确切输出如下;
============================= test session starts =============================
platform win32 -- Python 3.5.3, pytest-3.0.7, py-1.4.33, pluggy-0.4.0
rootdir: C:\Users\tom_b\OneDrive\Dokumente\GitHub\UrbanSearch, inifile:
plugins: cov-2.3.1
collected 4 items
test_main.py FFFF
================================== FAILURES ===================================
___________________________ test_selection_workers ____________________________
def test_selection_workers(): …Run Code Online (Sandbox Code Playgroud)