【问题标题】:Testing in python在 python 中测试
【发布时间】:2014-03-23 03:43:49
【问题描述】:

我想创建相互依赖的测试。也就是一个函数(测试用例)的返回值应该用在其他测试用例中。

我尝试过使用 unittest 和鼻子测试,但无法拥有返回值并使用它们的函数。

是否有任何测试框架允许我这样做?

更新:

我要进行的测试如下:

def setup():
 //Some initializations

def func(id):
    //some operations
     assert ' ' not in name

def test_mine:
    for loop of command line inputs 
         /////
         assert id > 0 
         if (some condition)
            for loop 
                yield func(id)

         else
            yield func(id)

所以为了能够使 func() 成为一个单独的测试用例,我需要获取我无法做到的 id

【问题讨论】:

  • 依赖于每个测试的测试,在我看来不像unit testing...您可以使用模拟对象为模拟您想要的小单元创建输入。
  • 我认为你使用哪个测试框架并不重要。请提供Minimal, Complete, and Verifiable example
  • @Oz123 :我需要将一个测试用例中生成的值传递给另一个测试用例。我能做到吗?
  • @alecxe : 请查看我的更新示例

标签: python unit-testing integration-testing nosetests


【解决方案1】:

一般来说,最好让测试尽可能地可重复和严格(想想函数式编程),并且尽可能地隔离。您不希望副作用比测试的拆解更持久,因为它们可能会影响未来测试的结果。可能会有一些涉及随机性的测试(例如,涉及线程序列化的测试),但如果没有进一步的信息,很难给出好的、具体的建议。

但是,假设您有一个方法 m1,它为相同的参数返回不同的结果,并且根据这些返回值,您希望调用和测试 m2 和 m3。您可以轻松地将所有这些放在单个测试用例中,并根据 m1 的返回值对 m2 和 m3 进行条件断言。

【讨论】:

  • 我用一个例子更新了我的问题。我需要单独的测试用例来区分执行的测试。有可能吗?
猜你喜欢
  • 1970-01-01
  • 2011-10-14
  • 2014-10-28
  • 2014-05-29
  • 2015-10-11
  • 2012-07-18
  • 2019-12-03
  • 1970-01-01
相关资源
最近更新 更多