我有以下控制器类
@Component
public class Controller{
@Value("${details}")
private String detail1;
@Value("${otherdetails}")
private String detail2;
public ModelClass getSomeDetails(String name, int age) {
Serviceclass serviceobject = new Serviceclass();
//some Code
serviceobject.doSomething(name, age, detail1, detail2);
}
}
完成后,我需要在一个测试用例中测试这个方法。我的测试课程如下。我有申请表。/src/test/resources文件夹中的属性文件
@RunWith(SpringJUnit4ClassRunner.class)
@TestPropertySource(locations="classpath:application.properties")
public class testClass{
@Test
public void getDetails() {
Controller controllerObject = new Controller();
controllerObject.getSomeDetails("name", 22);
//Other code
}
}
当我这样做时,应用程序。属性具有details和otherdetails参数,但返回null。
我应该如何使用它们来获取控制器类中的值?
您需要让Spring实例化您的Controller
类,而不是自己手动执行new
:
@RunWith(SpringJUnit4ClassRunner.class)
@TestPropertySource(locations="classpath:application.properties")
public class testClass{
@Autowired
private Controller controllerObject;
@Test
public void getDetails() {
controllerObject.getSomeDetails("name", 22);
//Other code
}
@TestConfiguration
static class TestConfig {
@Bean
public Controller controller() {
return new Controller();
}
}
}
请注意,您还可以将@RunWith(SpringJUnit4ClassRunner.class)
替换为@RunWith(SpringRunner.class)
。
除了添加内部类,您还可以让Spring测试通过用@SpringBootTest
注释测试来启动完整的应用程序。如果您知道要测试应用程序的哪一部分,您可以通过使用测试切片来获得更好的性能。
不要手动实例化控制器,而是将控制器自动连接到测试类中。
@RunWith(SpringJUnit4ClassRunner.class)
@TestPropertySource(locations="classpath:application.properties")
public class testClass{
@Autowired Controller controllerObject;
@Test
public void getDetails() {
controllerObject.getSomeDetails("name", 22);
//Other code
}
}
当我调试测试方法时,我看到变量是从文件中读取的。但是,在方法中,我看到变量是null。如何设置变量,以便在尝试测试此方法时在方法中可用?
我正在尝试为我的sping-boot应用程序设置测试。在常规执行中,我从. env文件中获取一些值,这些值是我在运行配置中指定的,如下所示: 但当我尝试运行最简单的测试时,它会失败,但有一个例外: 加载Application Contextjava.lang.IllegalStateException失败:加载Application Context失败………原因:org.springframewo
问题内容: 我如何获取 当前正在运行的测试用例名称 ,而在testsuite集合中却有16个测试用例。测试按顺序执行(按照将测试添加到testSuite集合的顺序)。当我将所有测试添加到testSuite集合中时,我可以预览该对象,但是如何在测试运行时获取当前正在执行的测试。也许某些变量保存了此信息? 例: 使用Selenium-RC框架执行测试。 问题答案: unittest.TestCase.
我想通过java反映获得一个类的(打包在jar文件中)注释参数。 > 我这样的注释 我的班级是这样的 我的密码是这样的 调试windows信息
我必须从文件中获取一个数字,有些文件包含字母和数字。比如(dsh8kuebw9)或者有(8)这样的空格,我怎样才能得到这些数字?我试过很多次了。我有一个方法可以找到一个数字出现在一个数字中的方法是count8方法。 parseInt将文件的行转换为整数,但由于在某些文件中有字母,我的方法遇到了问题,因为它只接受整数而不接受字符串
坦率地说,我甚至不知道这是否可能。但我想做的是如下所示。 > 我通过终端中的javac命令从ClassFile.java制作了一个类文件。 然后我想从. java文件或. class文件中获取一个实例。 接下来,我在eclipse中做了另一个项目,因为你猜这个项目路径和上面的文件路径完全不同。例如,ClassFile.java/class文件可以位于“下载”文件夹中,另一方面,新的eclipse项