【发布时间】:2021-07-30 07:04:48
【问题描述】:
我想在 Spock 中使用 @WithMockUser 运行参数化测试,每次迭代都有不同的角色。
作为示例,以下测试代码显示没有编译错误并且运行了两次。 但是结果失败了,因为#role 只在@Unroll 中被解析,而不是在@WithMockUser 注解中。
@Unroll("#role is authorized to get admin")
@WithMockUser(username = "user", roles = ["#role"])
def "User is authorized to get admin"() {
when:
def adminDto = adminController.getAdmin()
then:
adminDto.getStatusCode() == HttpStatus.OK
where:
role << ["USER", "ADMIN"]
}
所以我的问题是:是否可以将这样的测试作为参数化测试运行?
提前谢谢你!
注意:我知道注释可能如下所示:
@WithMockUser(username = "user", roles = ["USER", "ADMIN"])
但这将是一种不同的行为 - 一个呼叫同时具有两个角色。
【问题讨论】:
标签: unit-testing groovy annotations spock