1/3 考前复习
2/3 讲堂训练
3/3 实行陈诉
实行三:Software Unit Testing
对 Java 单元测试有开端的相识,学会利用 Junit 编写本身的测试用例,把握对被测试类举行测试的实现方法;相识轻量级的自动化工具 Selenium,学会利用 Selenium 举行网站自动化测试(选做)。
Eclipse、jdk1.8、chrome browser
利用 Junit 编写测试用例,并对被测试类举行干系功能测试。
a) 验证 Book 类的 equals 方法;
Book.java:package cn.edu.njupt;public class Book { private String title; private double price; public Book(String title, double price) { this.title = title; this.price = price; } public boolean equals(Object object) { if(object instanceof Book){ Book book=(Book)object; return getTitle().equals(book.getTitle()) && getPrice()==book.getPrice(); } return false; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; }}BookTest.java:package cn.edu.njupt;import org.junit.jupiter.api.AfterEach;import org.junit.jupiter.api.BeforeEach;import org.junit.jupiter.api.Test;import static org.junit.jupiter.api.Assertions.*;class BookTest { private Book book1; private Book book2; @BeforeEach void setUp() { book1=new Book("ES",12.99); book2=new Book("The Grate",11.99); } @AfterEach void tearDown() { book1=null; book2=null; } @Test void testEquals() { assertFalse((book2.equals(book1))); assertTrue((book1.equals(book1))); }}B)筹划 Triangle 类的测试用例,并举行测试。
Triangle.java:package cn.edu.njupt;public class Triangle { protected long lborderA=0; protected long lborderB=0; protected long lborderC=0; public Triangle(long lborderA, long lborderB, long lborderC) { this.lborderA = lborderA; this.lborderB = lborderB; this.lborderC = lborderC; } public static boolean isTriangle(Triangle triangle){ boolean isTriangle=false; if((triangle.lborderA>0 && triangle.lborderA<=Long.MAX_VALUE/2) &&(triangle.lborderB>0 && triangle.lborderB<=Long.MAX_VALUE/2) &&(triangle.lborderC>0 && triangle.lborderC<=Long.MAX_VALUE/2)) if((triangle.lborderA < (triangle.lborderB+triangle.lborderC)) &&(triangle.lborderB < (triangle.lborderA+triangle.lborderC)) &&(triangle.lborderC < (triangle.lborderB+triangle.lborderA))) isTriangle=true; return isTriangle; } public static String getType(Triangle triangle){ String strType="不是三角形"; if(isTriangle(triangle)){ if(triangle.lborderA==triangle.lborderB && triangle.lborderB==triangle.lborderC){ strType="等边三角形"; } else if((triangle.lborderA !=triangle.lborderB) &&(triangle.lborderB !=triangle.lborderC) &&(triangle.lborderA !=triangle.lborderC)) strType="不等边三角形"; else{ strType="等腰三角形"; } } return strType; }}TriangleTest.java:package cn.edu.njupt;import org.junit.jupiter.api.AfterEach;import org.junit.jupiter.api.BeforeEach;import org.junit.jupiter.api.Test;import static org.junit.jupiter.api.Assertions.*;class TriangleTest { private Triangle triangle1; private Triangle triangle2; private Triangle triangle3; private Triangle triangle4; private Triangle triangle5; private Triangle triangle6; @BeforeEach void setUp() { triangle1=new Triangle(3,3,3); triangle2=new Triangle(3,4,5); triangle3=new Triangle(3,3,5); triangle4=new Triangle(-1,3,5); triangle5=new Triangle(3,10,5); triangle6=new Triangle(3,3,5); } @AfterEach void tearDown() { triangle1=null; triangle2=null; triangle3=null; triangle4=null; triangle5=null; triangle6=null; } @Test void isTriangle() { assertTrue(Triangle.isTriangle(triangle6)); assertFalse(Triangle.isTriangle(triangle4)); assertFalse(Triangle.isTriangle(triangle5)); } @Test void getType() { assertEquals("等边三角形",Triangle .getType(triangle1)); assertEquals("不等边三角形",Triangle.getType(triangle2)); assertEquals("等腰三角形",Triangle.getType(triangle3)); assertEquals("不是三角形",Triangle.getType(triangle4)); }}4、利用 Selenium 举行 Web 应用步伐的自动化测试。(选做)
A)导入Selenium的jar包
B)下载对应Chrome欣赏器版本的驱动
(要修改Demo.java中对应的路径)
C)编写demo类: package king.test;import org.junit.After;import org.junit.Before;import org.junit.Test;import org.openqa.selenium.By;import org.openqa.selenium.WebDriver;import org.openqa.selenium.WebElement;import org.openqa.selenium.chrome.ChromeDriver;import java.util.List;import java.util.concurrent.TimeUnit;public class Demo1 { private WebDriver driver; @Before public void setUp(){ //设置谷歌欣赏器的驱动 System.setProperty("webdriver.chrome.driver","C:\\Program Files (x86)\\Google\\Chrome\\Application\\chromedriver.exe"); //启动谷歌欣赏器 driver=new ChromeDriver(); //设置默认超时时间 driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS); } @After public void tearDown() throws Exception{ //关闭欣赏器 driver.quit(); } @Test public void test222() throws Exception{ //打开测试页面 driver.get("file:///E:/test.html"); //通过id找到第一个输入框 WebElement un =driver.findElement(By.id("un")); //第一个输入框输入aaa un.sendKeys("aaa"); //通过id找到第二个输入框 WebElement pw =driver.findElement(By.className("lala")); //第一个输入框输入bbb pw.sendKeys("bbb"); //通过id找到第三个输入框 WebElement co =driver.findElement(By.name("code")); //第一个输入框输入ccc co.sendKeys("ccc"); Thread.sleep(2000); //找到页面中的全部的input标签 List<WebElement> inputs=driver.findElements(By.tagName("input")); //获取第四个input标签 WebElement btn = inputs.get(3); //点击按钮 btn.click(); Thread.sleep(3000); }}编写演示页面:test.html(要修改Demo.java中对应的路径)
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="Generator" content="EditPlus®"> <meta name="Author" content=""> <meta name="Keywords" content=""> <meta name="Description" content=""> <title>Document</title></head><body> <input id="un"https://www.jianshu.com/p/419eff3d6235
Visual SVN Server 选择老版本 2.7.5,下载链接:https://www.visualsvn.com/files/VisualSVN-Server-2.7.5.msi
2、客户端:Windows 10
TortoiseSVN 选择 WIN 32版本1.10.6 ,下载链接:https://tortoisesvn.net/downloads.html</p></blockquote>
1、安装服务器端 Visual SVN Server
2、设置 SVN 服务器的用户、用户组和权限
3、客户端链接服务器端
4、SVN 常用功能操作
完成 svn 的添加、提交、更新、分支、归并等操作。
|