0
我想嘲笑一些数据库插入和读取,IE浏览器,不做他们我的实际生产数据库,但要么创建一个模拟,或做一个临时的内存类型的东西,能够单元测试一些方法获取回复假数据。如何使用activejdbc对假数据进行单元测试/模拟?
如何在activejdbc中执行此操作?
我想嘲笑一些数据库插入和读取,IE浏览器,不做他们我的实际生产数据库,但要么创建一个模拟,或做一个临时的内存类型的东西,能够单元测试一些方法获取回复假数据。如何使用activejdbc对假数据进行单元测试/模拟?
如何在activejdbc中执行此操作?
当您需要在您的项目,以测试模型的功能,你可以使用类DBSpec
作为超一流的JUnit测试的是这样的:
public class MovieSpec extends DBSpec {
@Test
public void shouldValidateMovieAttributes() {
Movie movie = new Movie();
the(movie).shouldNotBe("valid");
movie.set("title", "blah", "year", "1122");
the(movie).shouldBe("valid");
}
@Test
public void shouldStoreDirectorAndMovies() {
Person director = new Person("Stephen Spielberg");
director.saveIt();
director.add(new Movie("Saving private Ryan", 1998));
director.add(new Movie("Jaws", 1982));
a(Movie.count()).shouldBeEqual(2);
List<Movie> movies = director.getAll(Movie.class).orderBy("year");
the(movies.get(0).getTitle()).shouldBeEqual("Jaws");
the(movies.get(1).getTitle()).shouldBeEqual("Saving private Ryan");
}
}
很多事情都发生在这里。超类DBSpec
将做自动如下:
测试前执行:
上启动一个新的事务处理测试执行后:
这样,你只写是关系到你的业务逻辑代码,而不用担心打开/关闭连接。
此外,因为DBSpec
回滚您的交易,您的测试数据库始终处于干净状态。有关显示其工作原理的完整示例,请参阅:https://github.com/javalite/simple-example