Read more: http://thejsguy.com/2015/01/12/jasmine-vs-mocha-chai-and-sinon.html
Some other useful links:
http://sinonjs.org/
https://facebook.github.io/
https://medium.com/powtoon-
http://blog.testdouble.com/
@Bean annotation tells that a method produces a bean to be managed by the Spring container. It is a method-level annotation. During Java configuration (@Configuration), the method is executed and its return value is registered as a bean within a BeanFactory.