那如果是test02方法要使用test01_add_course的cource_id怎么办
时间: 2024-10-01 17:10:06 浏览: 9
如果你想在 `test02` 方法中使用 `test01_add_course` 中创建的 `course_id`,你需要确保 `test01_add_course` 先被执行。因为 `test01_add_course` 是一个独立的测试用例,在它执行并设置了 `course_id` 后,你才能在 `test02` 中访问到这个值。
一种常见的做法是在 `test01_add_course` 结束时返回 `course_id`,然后将其存储在一个类属性或者全局变量中,以便后续方法可以访问。如果是在一个测试套件中运行,你可以确保它们按照特定顺序执行。例如:
```python
def test01_add_course(self):
... (代码同上)
self.course_id = res.json().get("data").get("id") # 添加 course_id 到 self 或者类的某个地方
return self.course_id # 返回给需要它的其他测试方法
def test02_get_course(self):
course_id = self.test01_add_course() # 如果 test01 添加了 course_id,这里就可以用了
... (继续使用 course_id 进行测试)
```
另一种方法是使用 fixtures(fixture 是预先配置好的数据、函数或环境,通常是为了复用数据),让测试框架自动管理这类依赖,确保在需要的地方有正确的上下文。
如果你正在使用 pytest 测试框架,你可以考虑创建一个 fixture 来处理这样的逻辑:
```python
@pytest.fixture
def add_course():
# 添加课程逻辑同上
course_id = ...
yield course_id # 返回 course_id 给依赖它的测试方法
def test02_get_course(add_course): # 使用 fixture 作为参数
# 使用 add_course 参数进行测试
...
```
这样,`test02_get_course` 就会先调用 `add_course` 函数,得到 `course_id` 后再执行自身的测试。