跳转到主要内容

这是一个用于Python的测试框架,使通过测试进行代码模拟和迭代的操作变得轻松简单。

项目描述

TestSlide

Build Status Coverage Status Documentation Status GitHub license PyPI version Code style: black

这是一个用于Python的测试框架,使 单元测试 / TDD / BDD 变得高效和愉悦。

它的良好行为的模拟和全面的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')

TestSlide 的 StrictMockmock_constructor()mock_callable() 与 Python 的 TestCase 紧密集成。

运行测试并查看失败

Failing test

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

import storage

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

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

然后观察测试变为绿色

Passing test

这完全是关于让失败信息引导您找到解决方案。TestSlide 的模拟内部有大量的验证,因此您可以相信,在编写代码时,它们会帮助您快速迭代,并在引入破坏性更改时为您提供保护。

完整文档

TestSlide 还能提供更多功能,请访问完整文档以了解更多信息:https://testslide.readthedocs.io/

要求

  • Linux
  • Python 3

加入 TestSlide 社区

TestSlide 是开源软件,非常欢迎贡献!

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

许可证

TestSlide 采用 MIT 许可证,如 LICENSE 文件所示。

使用条款

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

隐私政策

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

版权

版权所有 © 2021 Meta Platforms, Inc

项目详情


发布历史 发布通知 | RSS 源

下载文件

下载适用于您平台的文件。如果您不确定该选择哪个,请了解更多关于 安装包 的信息。

源代码分布

TestSlide-2.7.1.tar.gz (50.3 kB 查看散列)

上传时间 源代码

由以下机构支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面