Skip to main content

一个 Python 的测试框架,可以轻而易举地使用测试来模拟和迭代代码

项目描述

测试幻灯片

构建状态 覆盖状态 文件状态 GitHub 许可证 PyPI 版本 代码风格:黑色

一个 Python 测试框架,使单元测试/ TDD / BDD变得富有成效和令人愉快。

它的表现良好的 mock 具有彻底的 API 验证,无论是在第一次编写代码时还是在将来更改代码时都会捕获错误。

将它们与现有的unittest.TestCase或 TestSlide 自己的测试运行器一起使用的灵活性让用户无需重构现有代码即可获得其好处。

快速开始

安装:

pip install TestSlide

搭建要测试的代码backup.py

class Backup:
  def delete(self, path):
    pass

backup_test.py编写一个描述预期行为的测试用例:

import testslide, backup, storage

class TestBackupDelete(testslide.TestCase):
  def setUp(self):
    super().setUp()
    self.storage_mock = testslide.StrictMock(storage.Client)
    # Makes storage.Client(timeout=60) return self.storage_mock
    self.mock_constructor(storage, 'Client')\
      .for_call(timeout=60)\
      .to_return_value(self.storage_mock)

  def test_delete_from_storage(self):
    # Set behavior and assertion for the call at the mock
    self.mock_callable(self.storage_mock, 'delete')\
      .for_call('/file/to/delete')\
      .to_return_value(True)\
      .and_assert_called_once()
    backup.Backup().delete('/file/to/delete')

TestSlideStrictMock和Pythonmock_constructor()mock_callable()TestCase 无缝集成。

运行测试,看看失败:

失败的测试

TestSlide 的模拟失败消息将引导您找到解决方案,您现在可以实施:

import storage

class Backup:
  def __init__(self):
    self.storage = storage.Client(timeout=60)

  def delete(self, path):
    self.storage.delete(path)

并观察测试变绿:

通过测试

这一切都是为了让失败消息引导您找到解决方案。TestSlide 的模拟中有大量的验证,因此您可以相信它们会帮助您在编写代码时快速迭代,并在引入重大更改时覆盖您。

完整的文档

TestSlide 可以提供更多功能,请查看https://testslide.readthedocs.io/上的完整文档以了解更多信息。

要求

  • Linux
  • 蟒蛇 3

加入 TestSlide 社区

TestSlide 是开源软件,非常欢迎投稿!

有关如何提供帮助的信息,请参阅CONTRIBUTING文件。

执照

TestSlide 已获得 MIT 许可,可在LICENSE文件中找到。

使用条款

https://opensource.facebook.com/legal/terms

隐私政策

https://opensource.facebook.com/legal/privacy