我有一个简单控制器的设置:
@Controller
@RequestMapping("/test")
public class TestController {
@RequestMapping(value = "/{id}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public @ResponseBody List<String> getTestString(){
List<String> sampleTest = new ArrayList<String>();
sampleTest.add("Test");
return sampleTest;
}
}
对于这个简单的控制器,我试图使用MockMVC在Spock中编写一个测试:
class TestControllerTest extends Specification {
MockMvc mockMvc;
def setup(){
mockMvc = MockMvcBuilders.standaloneSetup(new TestController()).build();
}
def "testing TestController"(){
when:
MvcResult response = mockMvc.perform(get("/test/1"));
then:
response.andExpect(content().string('["Test"]'));
}
}
我有的罐子是:
Spring测试:4.0.5 Javax servlet api:3.0.1 spock Spring:0.7-groovy-2.0
运行测试后出现的错误如下:
groovy.lang.MissingMethodException: No signature of method: com.crmservice.controller.TestControllerTest.get() is applicable for argument types: (java.lang.String) values: [/test]
Possible solutions: getAt(java.lang.String), grep(), grep(java.lang.Object), wait(), Spy(), any()
at com.crmservice.controller.TestControllerTest.testing TestController(TestControllerTest.groovy:27)
缺少的get
方法是否已导入?
在导入块中需要以下行:
import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get
我正在使用spock框架为Spring 3控制器类编写测试。我在尝试执行其中一个测试(GET请求)时收到以下错误。请注意,同一类中的所有其他测试(POST请求)都按预期工作。 控制器签名 斯波克试验 组织。springframework。网状物util。NestedServletException:请求处理失败;嵌套的异常是java。lang.IllegalArgumentException:参数
我有一个基本的SpringBoot应用程序。使用Spring初始值设定项、嵌入式Tomcat、Thymeleaf模板引擎,并将包作为可执行的JAR文件。 我有一个控制器: 和另一个测试类。使用Spring的MockMVC框架进行测试。这在测试中驱动MVC应用程序,就好像它在容器中运行一样, 但我犯了一个错误:
服务被调用,但我的问题是这行代码 不起作用,我的意思是它真的调用了adminDao。选择方法,从而从数据库中获取结果。这是我不想要的。你知道如何模拟方法调用吗?
如果我使用的术语不正确,我必须首先道歉。我只使用Groovy/Java来完成自动化任务(Gradle),而且我没有多年交付生产级软件的经验。 因此,我面临的挑战如下:我有一个规范,它试图测试返回字符串是否符合预期(几乎与此相同)。 然而,不同之处在于,我的方法约束返回一个主体对象,而我真正想要存根的对象是toString()。我认为我在上面做得正确,但它没有给出我期望的结果。 这是我的帮手班。 如
输出: @InjectMocks没有注入任何内容,因为authManagement为null,因此出现了NullPointerException。有谁能帮我解决这个问题吗。