idea 如何快速测试
大项目,即使微服务,用@PostConstructor 或者,写main ,编译耗时,代码不纯洁。最号的方法Junit测试
这里介绍快捷的测试方法,

生成代码如下:
package com.uxsino.commons.cache;
import org.junit.Test;
public class ItemTest {
@Test
public void test(){
Item item = new Item();
item.setDatas(new String ("dousil"));
System.out.println(item.getDatas());
}
}
快捷方式2 ,Alt+shift +t 可以直接生成测试类。
Junit 缺陷,junit 在测试的时候,无法知道我们是否使用spring 框架。更不用说,帮我们创建spring 容器了。
利用spring test 就可以很好的实现。
1. 整合junit的必备jar包
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>5.0.2.RELEASE</version>
</dependency>
2. 使用@RunWith注解
@RunWith(SpringJUnit4ClassRunner.class)
public class AccountServiceTest {
}
3. 使用ContextConfiguration 指定配置文件位置
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations= {"classpath:applicationContext.xml"})
public class AccountServiceTest {
}
@ContextConfiguration 注解:
- locations 属性:用于指定配置文件的位置。如果是类路径下,需要用 classpath:表明
- classes 属性:用于指定注解的类。当不使用 xml 配置时,需要用此属性指定注解类的位置
4. 使用@Autowired 注解
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations= {"classpath:bean.xml"})
public class AccountServiceTest {
@Autowired
private IAccountService as ;
}
示例如下:
package com.uxsino.simo.collector;
import static org.junit.Assert.fail;
import org.junit.Ignore;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.ConfigFileApplicationContextInitializer;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(initializers=ConfigFileApplicationContextInitializer.class)
public class TestExecEnvironment {
@Configuration
@ComponentScan("com.uxsino.simo.collector")
public static class Config {
@Autowired
ExecEnvironment env;
}
@Test
public void testExecEnvironment() {
//assert (env != null);
}
@Ignore("Test is ignored before immplemenation")
@Test
public void testGetNameSpace() {
fail("Not yet implemented");
}
@Ignore("Test is ignored before immplemenation")
@Test
public void testGetEntityDomain() {
fail("Not yet implemented");
}
@Ignore("Test is ignored before immplemenation")
@Test
public void testInit() {
//NEDBStorage entitydb = new NEDBStorage();
ExecEnvironment execEnvironment = new ExecEnvironment();
assert (execEnvironment != null);
execEnvironment.init();
}
@Ignore("Test is ignored before immplemenation")
@Test
public void testDumpTasks() {
fail("Not yet implemented");
}
@Ignore("Test is ignored before immplemenation")
@Test
public void testRunPatrolTask() {
fail("Not yet implemented");
}
@Ignore("Test is ignored before immplemenation")
@Test
public void testStoreToDb() {
fail("Not yet implemented");
}
@Ignore("Test is ignored before immplemenation")
@Test
public void testRunImmediateQueryEntityInfoIndicator() {
fail("Not yet implemented");
}
@Ignore("Test is ignored before immplemenation")
@Test
public void testRunImmediateQueryStringEntityInfoIndicator() {
fail("Not yet implemented");
}
@Ignore("Test is ignored before immplemenation")
@Test
public void testExecQuery() {
fail("Not yet implemented");
}
@Ignore("Test is ignored before immplemenation")
@Test
public void testSubscribeValueConsumerOfIndicatorValue() {
fail("Not yet implemented");
}
@Ignore("Test is ignored before immplemenation")
@Test
public void testSubscribeValueSubscriberOfQsuperIndicatorValue() {
fail("Not yet implemented");
}
@Ignore("Test is ignored before immplemenation")
@Test
public void testAddTask() {
fail("Not yet implemented");
}
@Ignore("Test is ignored before immplemenation")
@Test
public void testDeleteTask() {
fail("Not yet implemented");
}
@Test
public void testX() {
// SSHTarget target = new SSHTarget();
// target.host = "localhost";
// target.port = 22;
// target.passwordEncrypted=false;
// target.setUsername("testcon");
// target.setPassword("Pdf1scape");
//
// SSHConnection conn = new SSHConnection();
//
// conn.connect(target);
//
// for (int i = 0; i < 5; i++) {
// conn.execCmd("date");
// }
//
// conn.close();
}
}
————————————————
版权声明:本文为CSDN博主「不爱我就写代码」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41744145/article/details/100125690
浙公网安备 33010602011771号