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

Python是否有首选的BDD样式单元测试框架?

发布时间:2020-12-20 13:42:47 所属栏目:Python 来源:网络整理
导读:我想知道是否有任何BDD风格的’describe-it’单元测试框架,用于维护和生产就绪.我找到了 describe,但似乎没有维护,也没有文档.我还发现 sure达到1.0,但它似乎只是添加语法糖而不是写断言.我真正想要的是与RSpec和Jasmine类似的东西,使我能够设置测试套件. de
我想知道是否有任何BDD风格的’describe-it’单元测试框架,用于维护和生产就绪.我找到了 describe,但似乎没有维护,也没有文档.我还发现 sure达到1.0,但它似乎只是添加语法糖而不是写断言.我真正想要的是与RSpec和Jasmine类似的东西,使我能够设置测试套件. describe-it语法允许测试函数的多个案例.与经典的断言结构相比,它可以测试每个函数一次并具有多个断言来测试多个案例.这打破了单元测试的隔离.如果有一种方法可以实现与断言式测试类似的东西,我会很感激有关如何做到这一点的任何建议.以下是两种风格的简单示例:

foo.py

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

BDD风格/描述,它

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)

解决方法

如果你在Python中期待与rspec / capybara完全相同的东西,那么恐怕你会感到失望.问题是ruby为你提供了比python更多的自由(对开放类和广泛的元编程有更多的支持).我不得不说python和ruby哲学之间存在根本区别.

如果你正在寻找纯粹的python解决方案,还有一些很好的测试框架,如Cucumber(https://github.com/cucumber/cucumber/wiki/Python)和生菜(http://lettuce.it/).

(编辑:李大同)

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

    推荐文章
      热点阅读