Showing posts from April, 2015

What should we Unit Test

Unit tests should be done wisely (Note: I suggest reading my previous post about Mocks before this one) It is easy to fall into the unit test biggest pitfall - dumb unit tests. What is the recipe for a popular unit-test pitfall ? Assume unit tests are very important Test everything verify every method call Get 100% coverage Yes, the above is bad. The most obvious problem you will find yourself struggling with will be failing tests regularily, and changing the tests to pass those failure points. That is the direct opposite target we want to achieve from unit tests. Upgrading of a unit test happens, but it shouldn't happen too much unless you specifically changed code in order to change the business logic. When a test fails, it should point to a problem with the code not with the test. Why do we fall to this pitfall ? Because we: Create unfocused unit tests  We test all the easy things instead of testing the important things We te

Mocking in a mock-shell (oops... nut-shell)

Mocking is a term used to describe a wide array of types, which is inaccurate. Well, now that everyone uses it as a general term, I assume it is ok to have one word to rule them all, but still, just for the sake of accuracy I will post here a short explanation. When doing mocking today, we usually use a mocking framework eg: Mockito etc... This framework allows the developer to mock an object for testing (or any other) purposes. Why mock ? Why will we want to mock an object instead of using the original one ? Maybe the original one is very complex Maybe the original one demands resources we don't want to mess with Maybe using the original one can have a restriction on our code Other things... So we want to use mocks. What can we do with them ? Sometimes we want to construct an object which needs an other object in it's constructor's argument list, we will just mock that argument and send it to the constructor - quick and easy. S

Mailing List Managers

Requirements Subscription form in my site which will collect emails and enable me to manage my mailing list with the following features: Will have a nice form which I can tweak and insert into my HTML code to collect emails in my site Have multiple groups of emails Blast emails to any specific group (Nice to Have) Will read RSS and send emails upon update of RSS Will be able to drip emails for each subscriber according to the time on my list User management (add / delete/ import / export etc) (Nice to Have) eMail templates (Nice to have) Nice backend GUI Main Obstacle Email provider might block me as a spammer This obstacle can be worked around by having a good scheduling dripper etc (but this is only a partial solution). Best solution is to have a provider (costs money) which will white list and drip the emails using the best intervals. Paid solutions aWeber - quite expensive, might be good for very large lists MailChimp - Free for first 2000