【发布时间】:2019-06-02 14:41:38
【问题描述】:
我正在 Python 中对对象检测code(已接受的答案)进行单元测试。我知道在单元测试中,我们基本上将测试参数放入我们在程序中定义的函数中,然后输入预期的结果。如果输出了预期的结果,就OK了,否则就报错了。
所以我的问题是我的 input 是 Image 而我的 output 也是一个图像(即 在图像),然后,使用条形图和带有滑块的直方图表示结果。 如何对此类数据进行单元测试?
到目前为止,这是我尝试过的(这个code保存为cirCode)
from unittest import TestCase
import unittest
from unittest import TestCase
import cirCode
class TestFind_circles(TestCase):
def setUp(self):
pass
def tearDown(self):
pass
#def test_circle(self):
# self.fail()
def test_find_circles(self):
Negative_circles, Positive_circles, out_filepath, circles, threshold = cirCode.find_circles('blobs.jpg')
self.assertEqual(Negative_circles, 20)
self.assertEqual(Positive_circles, 8)
if __name__ == '__main__':
unittest.main()
现在,我不知道如何测试def circle功能。另外,我不确定这是否是测试 find_circles 功能的正确方法。
你们有什么更好的想法来对此code 进行单元测试,以及如何继续对 circle 函数进行单元测试?
【问题讨论】:
-
它返回位图吗?已知输入是否相同?如果是这样,您至少可以对返回的位图与预期进行二进制比较。
-
@MarcinOrlowski 它从 Otsu 方法返回阈值,提供有关圆心坐标以及半径和平均 RGB 值的信息的圆,输出文件名和负数圈和正圈。所以,不,它不返回位图。但是在大图像上进行二进制比较会很困难,不是吗?
标签: python unit-testing opencv oop hough-transform