当前位置: 首页 > 知识库问答 >
问题:

在JUnit测试中从应用程序属性访问属性时出现空指针异常

糜淇
2023-03-14

我有从应用程序访问属性的方法。属性

class ServiceClass{

@Value("${urlfromapplicationproperties}")
public String myUrl ;

public String getUrl(){
 return myUrl;
}
}

下面是测试用例:

@RunWith(SpringJunit4ClassRunner.class)
@PropertySource("classpath:test:properties")
public class ServiceClassTest {

@Mock 
ServiceClass serviceclass;

@Before
public void setup(){ MockitoAnnotations.initMocks(this);}

@Test
public myTestMethod(){

serviceclass.getUrl();
}
}

当我访问该方法它的抛空指针。我已经声明该属性在application-test.yml。我缺少什么?任何参考或答案来解决这个问题?

共有2个答案

田瀚
2023-03-14

ServiceClass应定义为Springbean

@Configuration    
public class ServiceClass {
宰父远
2023-03-14

您可以使用ReflectionTestUtils设置字段

@Before
public void setup(){
    ReflectionTestUtils.setField(serviceclass, "myUrl", "http://testurl");
    MockitoAnnotations.initMocks(this);}
}
 类似资料:
  • 在我的Spring应用程序中,我有两个实体: 和 } 在我的测试jUnit中,我添加了一些类别和一些带有这个类别的商店,当我想访问当前类别的商店列表时,我有一个错误java。lang.NullPointerException。。。。 我的测试: 为了访问我添加到我的网站的惰性阿曲布他。xml过滤器:org。springframework。奥姆。冬眠3。支持OpenSessionInViewFilt

  • 我正在学习JUnit5和测试用例。我使用的是spring boot version'2.2.6.Release和JUnit5,在我的应用程序中,我有一个基于属性文件中的布尔标志进行处理的方法。 \src\main\resources\application.properties 数据库连接属性用于创建数据库连接 ControllerTest.java 默认情况下,该标志为false,因此每次测试用

  • 我做错了什么?我正在使用这个小型独立应用程序,它运行并查找我的。相同的配置在JUnit中不起作用,请参阅下面: 以下不起作用,中的相同属性未加载并且只有值:

  • 问题内容: 我的AngularJS模板包含一些自定义HTML语法,例如: 我创建了一个指令来处理它: 一切正常,但表达式始终返回,即使在执行时从Google Chrome浏览器的JavaScript控制台可见该属性,该表达式始终返回。 有什么建议吗? 更新:Artem提供了一种解决方案。它包括这样做: AngularJS + stackoverflow =幸福 问题答案: 请参阅指令文档中的属性一

  • 我的AngularJS模板包含一些自定义HTML语法,例如: AngularJS+stackoverflow=bliss

  • 我正在尝试编写一个小作业DSL,但是在访问类属性时,我正在努力获得错误。 因此,甚至不需要复杂的脚本。请参见以下脚本 ​ 当在Groovy web控制台上运行时,它工作得很好,但是当在我的Jenkins上运行时,我得到: 如何在Jenkins上运行的Groovy脚本中访问类属性,而不出现< code>StackOverflowError异常? 我的系统: 詹金斯版本是 2.73.3 工作DSL插件