当前位置: 首页 > 知识库问答 >
问题:

JUnit测试用例不是控制器中的检测方法

巫英纵
2023-03-14

新的Spring靴。

控制器中的API看起来像,

@RestController("/path1/path2")
public class SomeController
{

@GetMapping("/path3/path4")
public String doSomething()
{
//code goes here
}

}

测试用例看起来像,

@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = WebEnvironment.RANDOM_PORT, classes = 
xxx.class)
@AutoConfigureMockMvc(secure = false)
public class AuthServiceTestCase
{

@Autowired
private MockMvc mock;

@Test
public void testDoSomething()
{

//Command 1
mock.perform(get("/path1/path2/path3/path4")).andExpect(status().isOK()); 

//Command 2
 mock.perform(get("/path3/path4")).andExpect(status().isOK()); 

}

}

现在,在运行测试用例(命令1)后,我得到了以下结果

“java.lang.AssertionError:预期状态:

但“命令2”如期成功。

我的问题是,

RestController Prefix Path Controller Prefix Path=整个路径。

为了调用API,我们必须遵循上面的格式,但是如果遵循相同的内容,为什么Junit会失败呢?

有人能在这里输入一些信息吗?

共有2个答案

宣胜
2023-03-14

在您的例子中,path1/path2是控制器bean的名称。要为控制器内的所有方法添加通用前缀路径,可以将

@RequestMapping("/path1/path2")

在控制器上。

方梓
2023-03-14
@RestController
@RequestMapping("/path1/path2")
public class SomeController
{

@GetMapping("/path3/path4")
public String doSomething()
{
//code goes here
}

}

问题不在于你的测试课。问题是requestMapping的错误使用。

 类似资料:
  • 英文原文:http://emberjs.com/guides/testing/testing-controllers/ 单元测试方案和计算属性与之前单元测试基础中说明的相同,因为Ember.Controller集成自Ember.Object。 针对控制器的单元测试使用ember-qunit框架的moduleFor来做使这一切变得非常简单。 测试控制器操作 下面给出一个PostsController

  • 我在Ant构建脚本中使用JUnit5控制台。但是,它在我的项目中找不到任何测试。 我在终端中使用了以下命令: 其返回: 我得到了与Ant脚本相同的输出:

  • 我试图测试我的一个控制器,它返回给我一个get方法上的对象列表,以填充我页面上的下拉列表。 我试图使用MockMvc和Hamcrest编写一个JUnit测试来测试相同的内容。 我想比较对象列表,并测试它是否失败。 这就是我获取模型属性的方式: 提前谢了。

  • 我主要使用本教程为Maven配置Junit:http://maven.apache.org/surefire/maven-surefire-plugin/examples/junit.html 我有一个测试类,当我执行“mvn测试”时,这个测试类被Maven捕获,但Maven没有检查它(结果应该是失败)。 我的测试类位于src/main/resources中(控制台显示“复制1个资源”): 我的P

  • 我试图对Spring MVC控制器方法进行单元测试,但我的单元测试一直失败。 我有一个Spring MVC控制器方法: 我试图用JUnit测试这个控制器方法。我几乎没有单元测试的经验,我正在努力学习。如果没有mocking库,这几乎是不可能的,或者说没有意义,而我正在做的项目已经将Mockito作为一个依赖项,所以我正在尝试使用它。我的测试课程如下: 当我运行测试时,它失败了,我得到了一个exce

  • 是否有一种方法可以在@RequestParams上进行spring控制器单元测试以进行javax验证。 我在控制器中有一个get方法,它用@size验证请求参数的大小。 有没有办法模拟jUnit测试大小验证器?我想验证大小为 样本测试: @RunWith(MockitoJUnitRunner.class)公共类MyControllerTest{ } 我也试过SpringRunner,但似乎还是失败