Я абсолютно не знаком с модульным тестированием и ознакомился с учебными материалами о объекте Mock. Я попытался протестировать простой исходный код входа, но не смог создать правильный тестовый код. Может кто-нибудь, пожалуйста, предоставить некоторую помощь, если я хочу, чтобы проверить от неправильного имени пользователя, правильного пароля и правильного имени пользователя и неправильного пароля:Единичное тестирование простой службы входа в систему с использованием EasyMock
package com.isyn.testsetup;
public interface ApplicationUserService {
public ApplicationUser findByUserName(String userName);
}
package com.isyn.testsetup;
public class ApplicationUser {
private String userName;
private String password;
public ApplicationUser(String userName, String password) {
this.userName = userName;
this.password = password;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
package com.isyn.testsetup;
public class LoginUser {
private ApplicationUserService applicationUserService;
public LoginUser(ApplicationUserService applicationUserService) {
this.applicationUserService = applicationUserService;
}
public boolean validateCredentials(String userName, String password) {
boolean validationResult = false;
try {
ApplicationUser applicationUser = applicationUserService.findByUserName(userName);
if (applicationUser.getPassword().equals(password)) {
validationResult = true;
}
}
catch (Exception e) {
e.printStackTrace();
}
return validationResult;
}
}
Я придумал этот тестовый пример для действительных пользователей:
package com.isyn.testsetup;
import static org.easymock.EasyMock.eq;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import junit.framework.TestCase;
import org.easymock.EasyMock;
import org.junit.Before;
import org.junit.Test;
public class TestLogIn extends TestCase{
private ApplicationUser applicationUser;
private ApplicationUserService mockUserServiceObj;
@Before
public void setup() {
mockUserServiceObj = EasyMock.createMock(ApplicationUserService.class);
applicationUser = new ApplicationUser("gooduser", "goodpassword");
}
@Test
public void test() {
setup();
expect(mockUserServiceObj.findByUserName(eq("gooduser"))).andReturn(applicationUser);
replay(mockUserServiceObj);
LoginUser testUser = new LoginUser(mockUserServiceObj);
boolean checkStatus = testUser.validateCredentials("gooduser", "goodpassword");
assertTrue(checkStatus);
}
}
I хотел проверить неверные учетные данные и не знать, будет ли он работать, поскольку он показывает неожиданный вызов метода!
Need Help!
Спасибо, что нашли время для этого. Поэтому, поскольку я абсолютно новичок в тестировании, я хотел бы знать, что мне делать для проверки тестовых случаев, таких как 1. неправильное имя пользователя, правильный пароль 2. исправить имя пользователя, неправильный пароль 3. null имя пользователя, null пароль если я его испытания "baduser" и "goodpassword", он показывает сообщение об ошибке: java.lang.AssertionError: Неожиданный вызов метода ApplicationUserService.findByUserName ("baduser"): ApplicationUserService.findByUserName ("gooduser"): ожидается : 1, actual: 0 –
Также о вашей второй заботе, если я не вызываю setup(), она показывает ошибку. Вы можете попробовать и посмотреть. –