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