【问题标题】:How do I write a program out of provided unittest如何用提供的 unittest 编写程序
【发布时间】:2016-10-08 12:41:02
【问题描述】:

我有一个程序的单元测试。作为测试驱动开发的新手,我如何从给定的测试生成程序

例如我有这个测试:

class MaxMinTest(TestCase):
"""docstring for MaxMinTest"""

def test_find_max_min_four(self):
    self.assertListEqual([1, 4],
                         find_max_min([1, 2, 3, 4]),
                         msg='should return [1,4] for [1, 2, 3, 4]')

def test_find_max_min_one(self):
    self.assertListEqual([4, 6],
                         find_max_min([6, 4]),
                         msg='should return [4, 6] for [6, 4]')

def test_find_max_min_two(self):
    self.assertListEqual([2, 78],
                         find_max_min([4, 66, 6, 44, 7, 78, 8, 68, 2]),
                         msg='should return [2, 78] for [4, 66, 6, 44, 7, 78, 8, 68, 2]')

def test_find_max_min_three(self):
    self.assertListEqual([1, 4],
                         find_max_min([1, 2, 3, 4]),
                         msg='should return [1,4] for [1, 2, 3, 4]')

def test_find_max_min_identity(self):
    self.assertListEqual([4],
                         find_max_min([4, 4, 4, 4]),
                         msg='Return the number of elements in the list in a new list if the `min` and `max` are equal')

提前致谢。也请为像我这样的初学者分享学习测试驱动开发的资源。

【问题讨论】:

  • 你不能基于单元测试生成代码,你必须自己想出它。任何满足测试的东西都是有效的。将其视为要求列表。顺便说一句,您正在寻找类似 @​​987654322@ 的东西。
  • 谢谢。让我尝试实施。你知道任何关于编写单元测试的资源吗?

标签: python python-2.7 unit-testing tdd


【解决方案1】:

如果没有给出使这些测试通过的代码的答案,您的方法可能是这样的:

  • 您在测试什么?

  • 这个函数需要什么,返回什么?

  • 如何使 一个 测试通过?一旦我通过了一个测试,如何让另一个测试通过,同时确保前一个测试仍然通过。依此类推,直到所有测试都通过您在函数中编写的代码。

所以,从高层次回答您的问题。

您正在测试一个名为MinMax 的东西,它暗示要找到某物的最小值和最大值。这个something 是一个名为find_max_min 的函数,将list 作为输入,并返回一个包含两个值的列表。这两个值是按顺序排列的,minmax 是您传递给函数的 list

要查看的文档:

【讨论】:

  • 谢谢@idjaw。真的很有帮助。让我试试看。我猜它是一个返回具有最大和最小数字的新列表的函数
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-08
  • 1970-01-01
  • 2012-08-17
  • 2017-11-26
  • 2014-07-16
相关资源
最近更新 更多