Nanyouソフトウェアエンジニアリングユニットテストユニットテストレポート

ここに画像の説明を挿入

1.JUnitテスト

  • 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)));
    }
}

試験結果:
ここに画像の説明を挿入

  • 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;
    }

    /**
     * 判断是否是三角形
     * @param triangle
     * @return
     */
    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));
    }
}

試験結果:
ここに画像の説明を挿入

2. Webアプリケーションの自動テストにSeleniumを使用します(オプション)

  1. Seleniumjarパッケージをインポートします

    Jarパッケージリンク:https
    ://pan.baidu.com/s/12N_EY0Rl0aQcbCdl6kD-Jg抽出コード:2c7q

  2. Chromeブラウザのバージョンに対応するドライバをダウンロードします

    Chromeドライバーを確認し、対応するGoogleブラウザーのバージョンをダウンロードします:https://blog.csdn.net/lizhiyuanbest/article/details/105363310

  • Demo1.java

ブラウザにドライバをダウンロードした後、ドライバのパスを以下のパスに置き換えてください。
たとえば、私のドライバーはパスC:\ Program Files(x86)\ Google \ Chrome \ Application \ chromedriver.exeの下に配置されています


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

このファイルをEドライブに配置するか、Demo1のパスを変更します

<!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" class="css1" name="username">
	<input id="pw" class="css2 lala" name="password">
	<input id="co" class="css3" name="code"><br>
	<input type="button" id="btn" class="css4" name="submit" value="按钮">

	<script>
		document.getElementById('btn').onclick=function(){
     
     
			alert("haha");
		}
	</script>
</body>
</html>

テスト結果
ここに画像の説明を挿入
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/Supreme7/article/details/111175954