- Unit test sẽ giúp tìm ra lỗi của chương trình mình viết.
- Cố gắng viết unit test cover hết các main feature trong chương trình.
Vì nhờ vậy có khi mình lại khám phá ra vài lỗi tìm ẩn khác trong các đoạn code xử lý.
- Với những ví dụ đơn giản như implementation Stack trong java thì khả năng code lỗi vẫn có.
Ví dụ sau đây sẽ cho thấy:
Huy Nguyen
Thứ Ba, 13 tháng 2, 2018
Chủ Nhật, 27 tháng 8, 2017
Stupid mistake with jpa cache
Mất vài ngày để ngâm cứu một lỗi thật là vớ vẩn chỉ vì không test kỹ với real data trong mysql database.
Cụ thể là tình huống như sau.
Vấn đề là mãi sau này, mình mới test thử với dữ liệu thật thì thấy cache hoặc động bình thường.
Còn với data chỉ có trên grid data phase, thì cache sẽ bị fail.
Quả thật là kinh nghiệm xương máu. Mất khoảng vài ngày cho cái lỗi. :(:(
Cũng vui vì cuối cùng cũng solved problem.
Cụ thể là tình huống như sau.
@Test
@Transactional
public void testCache(){
EntityManagerFactory emf = postDAOJpa.getEntityManager().
getEntityManagerFactory();
Cache cache = emf.getCache();
Post post = postDAOJpa.find(12L);
assertTrue(post!=null && post.getId()>0);
if(!cache.contains(Post.class, post.getId())){
fail("cache does not contain");
}
post = postDAOJpa.find(post.getId());
Post postInsert = createPost();
postDAOJpa.save(postInsert);
post = postDAOJpa.find(postInsert.getId());
assertTrue(postInsert!=null && postInsert.getId()>0);
if(!cache.contains(Post.class, post.getId())){
fail("cache does not contain post which is inserted in the same transaction");
}
}
test fail:cache does not contain with post insert in the same transaction. Vấn đề là mãi sau này, mình mới test thử với dữ liệu thật thì thấy cache hoặc động bình thường.
Còn với data chỉ có trên grid data phase, thì cache sẽ bị fail.
Quả thật là kinh nghiệm xương máu. Mất khoảng vài ngày cho cái lỗi. :(:(
Cũng vui vì cuối cùng cũng solved problem.
Thứ Hai, 1 tháng 8, 2016
Bắt đầu viết blog
Đại khái là lập ra một trang blog để lưu lại những sự kiện đã trải qua. Có thể là về các vấn đề technical, work, love... Cứ tập tành viết ra cái gì đó để nâng cao khả năng viết lách một tí. Hoặc lưu lại các kinh nghiệm làm việc để sau này tránh bớt "ngu" hơn xưa.
Thân!
Thân!
Đăng ký:
Nhận xét (Atom)