| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
byb1234
10年前发布

JUnit4 和 Guice 测试库:Acai

Acai 是 JUnit4 和 Guice 的测试库,可以更容易的编写应用功能测试。

主要特性:

  • 注入测试需要的助手类

  • 启动测试需要的任意的服务

  • 运行测试之间的服务清理

  • 按照正确顺序启动多个服务

  • 创建测试作用域绑定

Acai 主要针对的是应用大型功能测试。

安装

<dependency>    <groupId>com.google.acai</groupId>    <artifactId>acai</artifactId>    <version>0.1</version>    <scope>test</scope>  </dependency>

使用 Acai 进行测试注入

@RunWith(JUnit4.class)  public class SimpleTest {    @Rule public Acai acai = new Acai(MyTestModule.class);    @Inject private MyClass foo;    @Test    public void checkSomethingWorks() {      // Use the injected value of foo here    }    private static class MyTestModule extends AbstractModule {      @Override protected void configure() {        bind(MyClass.class).to(MyClassImpl.class);      }    }  }

使用 Acai 启动服务

@RunWith(JUnit4.class)  public class ExampleFunctionalTest {    @Rule public Acai acai = new Acai(MyTestModule.class);    @Inject private MyServerClient serverClient;    @Test    public void checkSomethingWorks() {      // Call the running server and test some behaviour here.      // Any state will be cleared by MyFakeDatabaseWiper after each      // test case.    }    private static class MyTestModule extends AbstractModule {      @Override protected void configure() {        // Normal Guice modules which configure your        // server with in-memory versions of backends.        install(MyServerModule());        install(MyFakeDatabaseModule());        install(new TestingServiceModule() {          @Override protected void configureTestingServices() {            bindTestingService(MyServerRunner.class);            bindTestingService(MyFakeDatabaseWiper.class);          }        });      }    }    private static class MyServerRunner implements TestingService {      @Inject private MyServer myServer;      @BeforeSuite void startServer() {        myServer.start().awaitStarted();      }    }    private static class MyFakeDatabaseWiper implements TestingService {      @Inject private MyFakeDatabse myFakeDatabase;      @AfterTest void wipeDatabase() {        myFakeDatabase.wipe();      }    }  }

项目主页:http://www.open-open.com/lib/view/home/1429106216674

 本文由用户 byb1234 自行上传分享,仅供网友学习交流。所有权归原作者,若您的权利被侵害,请联系管理员。
 转载本站原创文章,请注明出处,并保留原始链接、图片水印。
 本站是一个以用户分享为主的开源技术平台,欢迎各类分享!
 本文地址:https://www.open-open.com/lib/view/open1429106216674.html
Acai 面向方面AOP/IoC