public class Calculator { public int add(int a, int b) { return a + b; }}
public void testAdd() { assertEquals(3, calculator.add(2, 1)); assertEquals(2, calculator.add(2, 0)); assertEquals(1, calculator.add(2, -1));}
public class Calculator { private AdderFactory adderFactory; public Calculator(AdderFactor adderFactory) { this.adderFactory = adderFactory; } public int add(int a, int b) { Adder adder = adderFactory.createAdder(); ReturnValue returnValue = adder.compute(new Number(a), new Number(b)); return returnValue.convertToInteger(); }}
// Pass in a stub that was created by a mocking framework.AccessManager accessManager = new AccessManager(stubAuthenticationService);// The user shouldn't have access when the authentication service returns false.when(stubAuthenticationService.isAuthenticated(USER_ID)).thenReturn(false);assertFalse(accessManager.userHasAccess(USER_ID));// The user should have access when the authentication service returns true. when(stubAuthenticationService.isAuthenticated(USER_ID)).thenReturn(true);assertTrue(accessManager.userHasAccess(USER_ID));
// Pass in a mock that was created by a mocking framework.AccessManager accessManager = new AccessManager(mockAuthenticationService);accessManager.userHasAccess(USER_ID);// The test should fail if accessManager.userHasAccess(USER_ID) didn't call// mockAuthenticationService.isAuthenticated(USER_ID) or if it called it more than once.verify(mockAuthenticationService).isAuthenticated(USER_ID);
// Creating the fake is fast and easy.AuthenticationService fakeAuthenticationService = new FakeAuthenticationService();AccessManager accessManager = new AccessManager(fakeAuthenticationService);// The user shouldn't have access since the authentication service doesn't// know about the user.assertFalse(accessManager.userHasAccess(USER_ID));// The user should have access after it's added to the authentication service.fakeAuthenticationService.addAuthenticatedUser(USER_ID);assertTrue(accessManager.userHasAccess(USER_ID));
public void deletePostsWithTag(Tag tag) { for (Post post : blogService.getAllPosts()) { if (post.getTags().contains(tag)) { blogService.deletePost(post.getId()); } }}
public class FakeBlogService implements BlogService { private final Set<Post> posts = new HashSet<Post>(); // Store posts in memory public void addPost(Post post) { posts.add(post); } public void deletePost(int id) { for (Post post : posts) { if (post.getId() == id) { posts.remove(post); return; } } throw new PostNotFoundException("No post with ID " + id); } public Set<Post> getAllPosts() { return posts; }}