Myo*_*age 2 python class instantiation testcase django-unittest
如何将从 python 命令行声明的变量传递给测试用例实例?编辑:a 和 b 是方法 func() 的输入。
a = [1,2,3]
b = np.array([1,2])
Run Code Online (Sandbox Code Playgroud)
文件名:code.py
import unittest
import numpy as np
def func(a,b)
c = a*b
return (c)
class TestCases(unittest.TestCase):
def test_length_a_equals_length_b(self):
self.assertEqual(len(a), len(b), msg="len(a) != len(b)")
Run Code Online (Sandbox Code Playgroud)
我如何将 a 和 b 输入到测试用例中,因此当它们的长度不相同时会发生错误?
从终端运行文件时出现以下错误:
ERROR: test_a_len_equals_len_b (main.TestCases)
----------------------------------------------------------------------
Traceback (most recent call last):
File "code.py", in test_length_a_equals_length_b
self.assertEqual(len(a), len(b), msg="len(a) != len(b)")
NameError: global name 'a' is not defined
Run Code Online (Sandbox Code Playgroud)
不要使用 assertNotEqual,而是使用 assertEqual。当 a 和 b 的长度不同时,这将失败。
编辑以回答评论:'a' 和 'b' 在哪里定义?你可以在你的模块范围内定义它们(就在 code.py 文件的开头),或者你可以在你的测试方法中定义,如下所示:
def test_length_a_equals_length_b(self):
a = [1,2,3]
b = np.array([1,2])
self.assertEqual(len(a), len(b), msg="len(a) != len(b)")
Run Code Online (Sandbox Code Playgroud)