首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java:通过接口测试具体类,Mockito,JUnit

Java:通过接口测试具体类,Mockito,JUnit
EN

Stack Overflow用户
提问于 2017-12-09 16:54:05
回答 1查看 197关注 0票数 1

我有这样的界面:

代码语言:javascript
复制
public interface RepositoryUserDB {

    User createUser(User user);
}

并将该方法实现为以下类:

代码语言:javascript
复制
public class MemoryUserDB implements RepositoryUserDB{

    Map<String, User> repo = new HashMap<>();

    @Override
    public User createUser(User user) {
        return repo.put(user.getUsername(), user);
    }
}

目标是测试该方法。我开始写这个,但我认为这是不对的:

代码语言:javascript
复制
@Test
public void testCreateUser(){
    User result = new User("luca", "antico", "23.11.2011", "112");
    Assert.assertEquals("luca", result.getUsername());
}

我怎样才能做到呢?

谢谢

编辑:

类用户:

代码语言:javascript
复制
 public class User {

    private String username;
    private String password;
    private String dateOfBirth;
    private String SSN;

    public User(String username, String password, String dateOfBirth, String SSN) {
        this.username = username;
        this.password = password;
        this.dateOfBirth = dateOfBirth;
        this.SSN = SSN;
    }

    public String getUsername() {
        return username;
    }

    public String getPassword() {
        return password;
    }

    public String getDateOfBirth() {
        return dateOfBirth;
    }

    public String getSSN() {
        return SSN;
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-12-09 17:03:59

坦率地说,这个测试并没有增加多少价值。

您的目标应该是验证回购是否包含您通过该方法传递的用户。

假设您在回购上有某种getByUserName方法,并且用户类有正确定义的equalshashCode,那么您可以进行这样的测试:

代码语言:javascript
复制
private MemoryUserDB memoryUserDB;

@Test
public void shouldCreateUser(){
   // Arrange
   User user = new User("luca", "antico", "23.11.2011", "112");

   // Act
   User addedUser = memoryUserDB.createUser(user);

   // Assert
   assertEquals(user, addedUser);
   assertEquals(user, memoryUserDB.getByUsername("luca");
}

此外,不要将test放在测试方法名称中,尝试通过名称解释bahavior。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47730862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档