使用JUnit测试服务器

时间:2011-06-04 19:21:24

标签: java unit-testing junit

我想用JUnit测试我的REST服务器。每个测试都向服务器发送一个HTTP请求,并根据预期出现在响应中的元素列表检查响应。

因此,测试程序如下:

for each request in test requests
   send request and receive response
   assert the response is ok
   for each element in the expected elements
      test if the element exists in the response

您如何使用JUnit实现它?

1 个答案:

答案 0 :(得分:6)

我会在您的JUnit类中使用@BeforeClass方法来获取服务器的最新版本并启动它(选择适当的端口等)。同样,@AfterClass可用于以编程方式关闭服务器。自动执行此操作非常重要,否则您必须记住不断运行最新版本的服务器。

我假设测试不会更改服务器中的任何数据。如果他们这样做,那么您应该使用@Before@After,但请记住,这将导致您的服务器为每个测试启动/停止,这可能会使测试花费不合理的长时间。

一旦你有了这个框架,编写测试本身应该很简单。

您还可以通过确保将RESTful API公开为仅与网络层隔离的普通Java API来将其写为“正确的”单元测试。这样可以更快地运行(并且希望如果你的网络层足够薄)可以获得大部分相同的错误。