单元测试
-
操作步骤:
a.导包import org.junit;
b.三个注解 @Test @Before @After
c.点击@Test 运行就可以了
用在不需要控制台输入的情境下:javaweb,框架项目,微服务项目 供开发人员自己做测试。
package com.page.test;
import com.page.entry.DVD;
import com.page.service.DvdService;
import com.page.service.impl.DvdServiceImpl;
import com.page.controller.DvdController;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
@SuppressWarnings("all")
public class DVDTest {
@Test
public void test1(){
DvdController controller=new DvdController();
controller.menu();
}
DvdService service=null;
@Before
public void testB(){
service=new DvdServiceImpl();
}
@Test
public void test2(){
int i= service.getDataCount(new DVD());
System.out.println("一共有"+i+"条数据");
}
@Test
public void test3(){
int i= service.getDataCount(new DVD());
System.out.println("一共有"+i+"条数据");
}
@After
public void testA(){
System.out.println("测试结束!");
}
}
注解
一,注解的分类
1,jdk中的常用注解:
@SuppressWarnings("all") 抑制警告
@Deprecated 标记过时
@Override 表示重写方法
2,单元测试里的注解:
@Test
@Before
@After
3,javadao注释里的注解;
4,框架、javaweb里的注解。
5,元注解:修饰注解的注解就是元注解。
枚举
一,创建
package page.enumdemo;
public enum DVDType {
恐怖,搞笑,穿越,古装
}
二,使用
package page.test;
import page.entry.DVD;
import page.enumdemo.DVDType;
import java.util.Scanner;
public class EnumTest {
public static void main(String[] args) {
//赋值,取值,转换,枚举
DVD dvd=new DVD();
//1,直接赋值
dvd.setDvdType(DVDType.古装);
//2,控制台输入赋值
Scanner input=new Scanner(System.in);
String s=input.next();
DVDType dvdType=DVDType.valueOf(s);
dvd.setDvdType(dvdType);
System.out.println(dvd.getDvdType());
}
}
三,Enum类常用方法
package com.msb.enum03;
public class TestSeason {
//这是一个main方法,是程序的入口:
public static void main(String[] args) {
//用enum关键字创建的Season枚举类上面的父类是:java.lang.Enum,常用方法子类Season可以直接拿过来使用:
//toString();--->获取对象的名字
Season autumn = Season.AUTUMN;
System.out.println(autumn/*.toString()*/);//AUTUMN
System.out.println("--------------------");
//values:返回枚举类对象的数组
Season[] values = Season.values();
for(Season s:values){
System.out.println(s/*.toString()*/);
}
System.out.println("--------------------");
//valueOf:通过对象名字获取这个枚举对象
//注意:对象的名字必须传正确,否则抛出异常
Season autumn1 = Season.valueOf("AUTUMN");
System.out.println(autumn1);
}
}
网络编程
- 客户端
package page.socketdemo;
/**
* 客户端:发送信息给服务器 问 “中午吃啥了?”
*/
import java.io.*;
import java.net.Socket;
import java.util.Scanner;
public class Asocket {
public static void main(String[] args) throws IOException {
while (true) {
Scanner input = new Scanner(System.in);
//设置一个socket对象,锁定服务器的IP和端口
Socket socket = new Socket("127.0.0.1", 8888);
//2.获得输出节点流
OutputStream outputStream = socket.getOutputStream();
DataOutputStream dos = new DataOutputStream(outputStream);
//3.写入数据
/* dos.writeUTF("中午吃啥了?");*/
System.out.println("请输入你要发送的信息:");
dos.writeUTF(input.next());
//4.接受服务器端回复的消息
InputStream inputStream = socket.getInputStream();
DataInputStream dis = new DataInputStream(inputStream);
System.out.println("服务器回复:" + dis.readUTF());
//4.关闭流资源
dis.close();
dos.close();
}
}
} - 服务器端
package page.socketdemo;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Scanner;
/**
* 服务器端
*/
public class SSocket {
public static void main(String[] args) throws IOException {
Scanner input = new Scanner(System.in);
ServerSocket ss = new ServerSocket(8888);
while (true) {
System.out.println("服务器已启动!");
//通过系统类,一直关注一个端口号,判断是否有客户端发送请求
//2.接收发送过来的请求:
Socket socket = ss.accept();//accept();---可以阻塞线程
//3.获得输入流
InputStream inputStream = socket.getInputStream();
DataInputStream dis = new DataInputStream(inputStream);
//4.读出
String s = dis.readUTF();
System.out.println("客户端发来了的消息:" + s);
//5.回复
OutputStream outputStream = socket.getOutputStream();
DataOutputStream dos = new DataOutputStream(outputStream);
System.out.println("请回复客户:");
dos.writeUTF(input.next());
//5.关闭资源
dos.close();
dis.close();
}
}
}