def linear_searching(list,size,target): for i in range(0,size): if(list[i]==target): return i; return -1单元测试
时间: 2024-05-01 07:20:26 浏览: 13
你想要进行单元测试,那么可以按照以下步骤进行:
1. 编写测试用例,包括输入和期望输出
2. 调用 linear_searching 函数,传入测试用例中的输入参数
3. 检查返回值是否等于期望输出,如果相等则测试通过,否则测试失败
下面是一个示例的测试用例和测试代码:
```
# 测试用例
test_cases = [
([1, 2, 3, 4, 5], 5, 3, 2),
([10, 20, 30, 40, 50], 5, 60, -1),
([100], 1, 100, 0),
([], 0, 1, -1),
]
# 执行测试
for i, test_case in enumerate(test_cases):
lst, size, target, expected = test_case
got = linear_searching(lst, size, target)
if got != expected:
print(f"测试{i}失败:输入{test_case[:3]},期望输出{expected},实际输出{got}")
else:
print(f"测试{i}通过")
```
你可以将这段代码复制到 Python 解释器中执行,来进行单元测试。
相关问题
8. (实践题, 16.7分) 对一下python代码执行以下操作: def linear_searching(list, size, target): ① for i in range(0, size): ② if (list[i] == target): ③ return i ④ return -1 1 根据源代码画出控制流图 (提交截图) 2 计算环路复杂性 3 给出独立路径 4 给出测试数据 5 跟据第四步测试数据使用unittest框架对线性查找函数进行单元测试的代码。 要求:有相关包的导入 使用ddt驱动
1. 控制流图如下:
![linear_searching控制流图](https://i.imgur.com/b9yL7gP.png)
2. 环路复杂性:P = E - N + 2 = 8 - 7 + 2 = 3
3. 独立路径如下:
- 1-2-4
- 1-2-3-4
- 1-5-6-4
- 1-5-7-8-6-4
4. 测试数据:
```python
import unittest
from ddt import ddt, data, unpack
@ddt
class TestLinearSearch(unittest.TestCase):
@data(
([1, 2, 3, 4, 5], 5, 3, 2),
([1, 2, 3, 4, 5], 5, 6, -1),
([], 0, 1, -1),
([3], 1, 3, 0),
(["a", "b", "c"], 3, "b", 1)
)
@unpack
def test_linear_search(self, test_list, size, target, expected):
self.assertEqual(linear_search(test_list, size, target), expected)
if __name__ == '__main__':
unittest.main()
```
5. 完整代码如下:
```python
def linear_search(list, size, target):
for i in range(0, size):
if (list[i] == target):
return i
return -1
import unittest
from ddt import ddt, data, unpack
@ddt
class TestLinearSearch(unittest.TestCase):
@data(
([1, 2, 3, 4, 5], 5, 3, 2),
([1, 2, 3, 4, 5], 5, 6, -1),
([], 0, 1, -1),
([3], 1, 3, 0),
(["a", "b", "c"], 3, "b", 1)
)
@unpack
def test_linear_search(self, test_list, size, target, expected):
self.assertEqual(linear_search(test_list, size, target), expected)
if __name__ == '__main__':
unittest.main()
```
使用Unittest框架对线性查找函数linear_searching进行测试
好的,以下是对线性查找函数linear_searching进行测试的示例代码:
```python
import unittest
from linear_searching import linear_searching
class TestLinearSearching(unittest.TestCase):
def test_linear_searching(self):
arr = [1, 2, 3, 4, 5]
self.assertEqual(linear_searching(arr, 3), 2)
self.assertEqual(linear_searching(arr, 6), -1)
self.assertEqual(linear_searching(arr, 1), 0)
self.assertEqual(linear_searching(arr, 5), 4)
if __name__ == '__main__':
unittest.main()
```
首先,我们导入了unittest模块和待测试的线性查找函数linear_searching。然后,定义了一个继承自unittest.TestCase的测试类TestLinearSearching。在测试类中,我们定义了一个测试方法test_linear_searching,该方法对linear_searching函数进行测试。
在测试方法中,我们定义了一个测试用例,使用assertEqual方法来断言函数的返回值是否与预期值相等。这里我们测试了四个不同的输入情况:在数组中查找存在的元素、在数组中查找不存在的元素、在数组中查找第一个元素和最后一个元素。
最后,在if __name__ == '__main__'的判断下,我们执行unittest.main()方法来执行测试用例。