小编ban*_*etl的帖子

休息控制器单元测试

我试图为Rest Controller进行单元测试.我为数据库访问管理器做了一个存根(〜mock),效果很好.我唯一的问题是,当我开始我的单元测试时,它不会启动应用程序.

如何从单元测试中启动应用程序?

我使用的是弹簧4.2.3,弹簧靴1.3.7,junit 4.12.

这是我的课程:

TestRestController

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(locations = "classpath:/META-INF/spring/mvc/mvc-test-context.xml")
public class RestControllerTest extends AbstractTransitionnalTest {

  @Autowired
  private IManager Manager;

  @Test
  public void getTestSingleItem(){
    Item itm = myTestItemPreInitiallized;
    Manager.save(itm);
    List<Map> apiResponse = restTemplate.getForObject(networkAddress + "/items", List.class);
    // Assertions on apiResponse
  }
}
Run Code Online (Sandbox Code Playgroud)

RestController:

@RestController
@RequestMapping("/items")
class RestController {

  @Autowired
  private IManager Manager;

  // Controller content
}
Run Code Online (Sandbox Code Playgroud)

mvc-test-context.xml中的Bean

<bean
        id="IManager"
        class="com.service.ManagerStub">
</bean>
<bean
        id="RestController"
        class="com.controller.RestController">
</bean>
Run Code Online (Sandbox Code Playgroud)

包含main的应用程序类

@Configuration
@EnableAutoConfiguration
@EnableTransactionManagement
@ImportResource({ "classpath:/META-INF/spring/context-application.xml" })
public class Application {
Run Code Online (Sandbox Code Playgroud)

如果我现在运行它,应用程序类没有启动,我得到以下错误:GET请求地址的I/O错误:连接被拒绝

如果您没有确切的解决方案,或者想提出另一种方法来执行此操作或解决方法,我希望的是仅在我启动测试时才 …

java rest junit spring unit-testing

2
推荐指数
1
解决办法
1763
查看次数

标签 统计

java ×1

junit ×1

rest ×1

spring ×1

unit-testing ×1