我正在使用pact-jvm-provider-spring来验证我的提供程序,像这样定义我的提供程序测试类:
@RunWith(SpringRestPactRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
class PactTests {
@MockBean
StudentService studentService
@TestTarget
@SuppressWarnings(value = "VisibilityModifier")
public final Target target = new HttpTarget(8000);
@State("has students")
public void hasStudents() {
when(studentService.getStudent(anyString())).thenReturn(createStudent());
}
问题是,当我的控制器使用studentService
来获取学生时,它会返回null
。不知道我在这里想念什么吗?
PS:如果我添加一个@Before
方法,然后在其中而不是@State
内放置模拟代码,它不会返回null。这很奇怪