如果函数带参数,python assertRaises不会通过测试

DJJ*_*DJJ 3 python tdd

assertRaises使用以下代码给出断言错误.有什么我做错了吗?

class File_too_small(Exception):
    "Check file size"

def foo(a,b):
    if a<b:
        raise File_too_small
class some_Test(unittest.TestCase):

    def test_foo(self):
        self.assertRaises(File_too_small,foo(1,2))
Run Code Online (Sandbox Code Playgroud)

尽管如此,测试似乎通过了以下修改

def foo:
    raise File_too_small

def test_foo(self):
    self.assertRaises(File_too_small,foo)
Run Code Online (Sandbox Code Playgroud)

mat*_*ino 6

试试这样:

def test_foo(self):
    with self.assertRaises(File_too_small):
        foo(1, 2)
Run Code Online (Sandbox Code Playgroud)

要么:

def test_foo(self):
    self.assertRaises(File_too_small, foo, 1, 2):
Run Code Online (Sandbox Code Playgroud)