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
Function 如何为类方法生成测试函数?_Function_Unit Testing_Class_Testing_Ode - Fatal编程技术网

Function 如何为类方法生成测试函数?

Function 如何为类方法生成测试函数?,function,unit-testing,class,testing,ode,Function,Unit Testing,Class,Testing,Ode,我得到了这个类,我想测试call方法,看看这个类是否工作正常。我正在实现一个测试来测试这个类 作品测试函数应该验证调用方法是否返回 对于参数T和T的给定值(调用方法的输入是T和T),正确的结果。您将如何解决它?使用测试功能时,我的意思是使用def test\u cooling():我的代码位于: class Cooling: def __init__(self,h,Ts): self.h=h self.Ts=Ts def __ca

我得到了这个类,我想测试call方法,看看这个类是否工作正常。我正在实现一个测试来测试这个类 作品测试函数应该验证调用方法是否返回 对于参数T和T的给定值(调用方法的输入是T和T),正确的结果。您将如何解决它?使用测试功能时,我的意思是使用
def test\u cooling():
我的代码位于:

class Cooling:
    def __init__(self,h,Ts):
        self.h=h
        self.Ts=Ts
        
    def __call__(self, T, t):
        self.T = T
        self.t = t
        h = -self.h*(self.T - self.Ts)
        self.T = (self.T) + self.t*h
        return self.T, self.t
我试过了

def test_Cooling(self):
        c=Cooling()
        expected=c.__call__(T,t)
        self.assertTrue(expected, msg=None)

要测试某些东西,您需要了解它的功能

冷却。\uuuu init\uuuu
接受两个参数<代码>c=冷却(h,Ts)

不应显式调用。相反,它允许您像函数一样调用对象:
c(T,T)
。它返回计算结果

考虑到这一点,我们可以编写一个测试来检查它是否返回我们期望的结果

您还需要测试h、Ts、T和T是否正确存储。除了
self.T
,它们都只是输入的副本

class SampleTest(unittest.TestCase):
    def test_Cooling(self):
        h = 1
        Ts = 2
        T = 3
        t = 4
        newT = -1
        expected = (newT,t)

        cooling = Cooling(h, Ts)
        self.assertEqual( cooling(T,t), expected )
        self.assertEqual( cooling.h, h )
        self.assertEqual( cooling.Ts, Ts )
        self.assertEqual( cooling.t, t )
        self.assertEqual( cooling.T, newT )
您必须为h、Ts、T和T选择一组值,并手动计算
newT
。或者询问是谁编写了函数以获得一些预期的输入和输出


请注意,它返回的
t
未经更改,为什么会返回ll?

到目前为止您尝试了什么?这应该和测试一个对象没什么区别。我试过测试一个对象,但效果不好。你能告诉我们你到目前为止试过什么吗。现在编辑到我的答案中不,我需要在测试方法的类之外创建一个函数,而不是在class@TravisScott我不明白<代码>测试冷却不应在类内。我已经说得更清楚了。