断言的范围



这是我的代码,

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

最新更新