这是我的代码,
def sample(self, f):
g = f(1000)
check = np.all(g >= 0.0) and np.all(g < 1.0)
assert_equal(check, True)
我正在尝试一个类似于上面的断言,比如
def test_random_vector_1(self, f):
v = f(1000)
self.assertTrue(0.0<= v <1.0)
然而,我得到一个错误,说assertTrue不是一个属性。是否有其他方法可以缩短代码?
这些方法是类的一部分吗?通常,只有当函数是类的方法并且需要访问类属性时,才能将self
参数包含到函数中。
如果它们是类的一部分,则似乎您正在尝试构建单元测试。为了使assertTrue
方法可用,该类需要继承unittest
。下面是一个简单的例子:
import unittest
import numpy as np
class TestVectors(unittest.TestCase):
def test_vector_range(self, vector):
self.assertTrue(np.all(np.logical_and(vector >= 0.0, vector < 1.0)))
tester = TestVectors() #Initialize the test class
testv = np.random.uniform(size=100) #Create vector to test
tester.test_vector_range(testv) #Test the vector, nothing happens, test passes
testv[0] = 10
tester.test_vector_range(testv) #AssertionError thrown because test fails