如何解决JUnit测试Android NullPointerException
我的项目使用Firebase实时数据库作为其数据库存储。我正在将MVC体系结构与存储库和服务层一起使用。我正在尝试对服务层中将新用户添加到数据库存储库中的方法进行单元测试。
我在下面的行上收到一个空指针异常,我不知道为什么。有什么想法吗?
User testUser = svc.SaveUserProfile(u);
这是我的单元测试代码:
public class RegistrationActivityTest {
UserService svc;
@Test
public void testAddUserToDb_WhenNone_ShouldSetAllProperties(){
//act
User u = new User("1","John","john@email.com","Teacher");
User testUser = svc.SaveUserProfile(u);
//assert - that testUser is not null
assertNotNull(testUser);
//now assert that the user properties were set correctly
assertEquals("1",testUser.getUserId());
assertEquals("John",testUser.getName());
assertEquals("john@email.com",testUser.getEmail());
assertEquals("Teacher",testUser.getAccount());
}
这是我的服务层和接口代码:
public class UserService implements IUserService {
//instance of DbContext for firebase handling
private DbContext dbContext;
public UserService(Context context){
super();
dbContext = new DbContext(context);
}
@Override
public User SaveUserProfile(User u) {
User user = new User();
user.setUserId(u.getUserId());
user.setName(u.getName());
user.setEmail(u.getEmail());
user.setAccount(u.getAccount());
dbContext.AddUserAccount(user);
return user;
}
接口:
public interface IUserService {
User SaveUserProfile(User u);
}
解决方法
您的<?php
session_start();
$email = mysqli_real_escape_string($link,$_SESSION["email"]);
echo $email;
$sqlget = "SELECT clubID FROM users WHERE email = '$email'";
$sqldata = mysqli_query($link,$sqlget) or die('error');
while($sqloutput=mysqli_fetch_assoc($sqldata)){
echo "{$sqloutput['clubID']}</br>";
}
?>
是未创建的对象。在使用之前创建它:
svc
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。