加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

使用断言式测试在Python中隔离单元测试的规范方法是什么?

发布时间:2020-12-20 13:42:48 所属栏目:Python 来源:网络整理
导读:我最近问了这个 question,并意识到我也想知道是否有办法通过断言式测试实现’期望’隔离.我复制并粘贴了一个关于’期望’隔离的简单例子. 我是Python的新手,来自Ruby / JavaScript,并且像Rspec和Jasmine这样的测试库让我能够在测试单个函数时隔离’期望’.因
我最近问了这个 question,并意识到我也想知道是否有办法通过断言式测试实现’期望’隔离.我复制并粘贴了一个关于’期望’隔离的简单例子.

我是Python的新手,来自Ruby / JavaScript,并且像Rspec和Jasmine这样的测试库让我能够在测试单个函数时隔离’期望’.因为似乎没有一个主动维护的’期望’风格的Python库,我想知道是否有办法用unittest或pytest实现等效的测试风格(我理解的两个最流行的Python测试库) ).

foo.py

class Foo():
    def bar(self,x):
        return x + 1

展望风格/描述,它

test_foo.py

describe Foo:
    describe self.bar:
        before_each:
            f = Foo()

        it 'returns 1 more than its arguments value':
            expect f.bar(3) == 4

        it 'raises an error if no argument is passed in':
            expect f.bar() raiseError

单元测试/断言风格

test_foo.py

class Foo():
     def test_bar(x):
         x = 3
         self.assertEqual(4)
         x = None
         self.assertRaises(Error)

解决方法

unittest模块是标准库的一部分.

class TestFoo(unittest.TestCase):
    def setUp(self):
        self.f = Foo()

    def test_bar(self):
        self.assertEqual(self.f.bar(3),4)

    def test_missing_argument(self):
        self.assertRaises(TypeError,self.f.bar())

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读