lundi 27 avril 2015

write unit tests with mocks java

I'm a bit new with unittesting and everything about Mocks so I think I could use some help.

I need to write unit tests for this code:

@Service
public class TwitterService {

    @Autowired(required=false)
    private Twitter twitter;

    private static final int RESULTSIZE = 5;


    public List<TwitterDTO> getTweets(String tag)
    {
        String searchTag = "#" + tag;
        SearchParameters param = new SearchParameters(searchTag);
        param.count(RESULTSIZE);
        param.resultType(ResultType.RECENT);

        List<TwitterDTO> tweetList= new ArrayList<TwitterDTO>();


        SearchResults results = twitter.searchOperations().search(param);

        for(Tweet tweet: results.getTweets()) {
            TwitterDTO twitterDTO = new TwitterDTO();
            twitterDTO.setTweetId(tweet.getId());
            twitterDTO.setName(tweet.getUser().getName());
            twitterDTO.setUserNameTwitter(tweet.getFromUser());
            twitterDTO.setCreatedDate(tweet.getCreatedAt());
            twitterDTO.setMessage(tweet.getUnmodifiedText());
            twitterDTO.setRetweetCount(tweet.getRetweetCount());
            twitterDTO.setFavoriteCount(tweet.getFavoriteCount());
            twitterDTO.setProfileImageUrl(tweet.getProfileImageUrl());
            twitterDTO.setTwitterUrl("https://twitter.com/" + tweet.getFromUser() + "/status/" + tweet.getId());
            tweetList.add(twitterDTO);
        }

        return tweetList;
    }

    public boolean isAvailable()
    {
        return this.twitter != null;
    }

So far I have this as far as my testng knowledge goes:

@RunWith(MockitoJUnitRunner.class)
public class TestTwitterLogic {

    @Mock
    private Twitter twitter;

    @InjectMocks
    private TwitterRestController restController;

    private MockMvc mockMVC;

    @Before
    public void setup()
    {
        MockitoAnnotations.initMocks(this);
        mockMVC = MockMvcBuilders.standaloneSetup(restController).build();
    }


    @Test
    public void testTwitterService()
    {

        List<TwitterDTO> dtos = service.getTweets("samsung");
        assertNotEquals(0, dtos.size());
    }
}

All advice or help is welcome, Thanks!

Aucun commentaire:

Enregistrer un commentaire