java测试用例生成器_实例实现测试用例自动生成

自动化测试的整体步骤如下(目标为一个程序Triangle.java):

Triangle.java代码如下:

public class Triangle {

protected long lborderA = 0;

protected long lborderB = 0;

protected long lborderC = 0;

// Constructor

public Triangle(long lborderA, long lborderB, long lborderC) {

this.lborderA = lborderA;

this.lborderB = lborderB;

this.lborderC = lborderC;

}

/**

* check if it is a triangle

*

* @return true for triangle and false not

*/

public boolean isTriangle(Triangle triangle) {

boolean isTriangle = false;

// check boundary

if ((triangle.lborderA > 0 && triangle.lborderA <= Long.MAX_VALUE)

&& (triangle.lborderB > 0 && triangle.lborderB <= Long.MAX_VALUE)

&& (triangle.lborderC > 0 && triangle.lborderC <= Long.MAX_VALUE)) {

// check if subtraction of two border larger than the third

if (diffOfBorders(triangle.lborderA, triangle.lborderB) < triangle.lborderC

&& diffOfBorders(triangle.lborderB, triangle.lborderC) < triangle.lborderA

&& diffOfBorders(triangle.lborderC, triangle.lborderA) < triangle.lborderB) {

isTriangle = true;

}

}

return isTriangle;

}

/**

* Check the type of triangle

*

* Consists of "Illegal", "Regular", "Scalene", "Isosceles"

*/

public String getType(Triangle triangle) {

String strType = "Illegal";

if (isTriangle(triangle)) {

// Is Regular

if (triangle.lborderA == triangle.lborderB

&& triangle.lborderB == triangle.lborderC) {

strType = "Regular";

}

// If scalene

else if ((triangle.lborderA != triangle.lborderB)

&& (triangle.lborderB != triangle.lborderC)

&& (triangle.lborderA != triangle.lborderC)) {

strType = "Scalene";

}

// if isosceles

else {

strType = "Isosceles";

}

}

return strType;

}

/**

* calculate the diff between borders

*

* */

public long diffOfBorders(long a, long b) {

return (a > b) ? (a - b) : (b - a);

}

/**

* get length of borders

*/

public long[] getBorders() {

long[] borders = new long[3];

borders[0] = this.lborderA;

borders[1] = this.lborderB;

borders[2] = this.lborderC;

return borders;

}

}

1‘自动生成测试用例(利用randoop工具),得到测试用例集文件(tests.java文件):

(1) 在目标路径下放置Triangle.java;在命令界面当前路径下输入javac  Triangle.java 进行编译得到文件Triangle.class;之后再新建myclass.txt文件写入类名Triangle。

1cc471cb616cd891b190054c4c99d69f.png

c26c27d7dc0eb3723f0124a58f4d5de7.png

(2)用randoop工具(安装配置见  java -classpath .;%RANDOOP_JAR%  randoop.main.Main  gentests  --classlist=myclass.txt  --timelimit=6  ,显示结果如下:

31919890d1377569e8e69c50744f78ea.png

查看当前目录下生成两个测试用例集文件,第一步测试用例自动生成完成。如图:

5044c4590065d141fa1d6fa889c5a4c2.png

查看Regression Test0.java内容如下:

import org.junit.FixMethodOrder;

import org.junit.Test;

import org.junit.runners.MethodSorters;

@FixMethodOrder(MethodSorters.NAME_ASCENDING)

public class RegressionTest0 {

public static boolean debug = false;

@Test

public void test01() throws Throwable {

if (debug)

System.out.format("%n%s%n", "RegressionTest0.test01");

Triangle triangle3 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long4 = triangle3.lborderA;

triangle3.lborderB = (short) 0;

long long9 = triangle3.diffOfBorders((long) 100, (long) (short) 1);

triangle3.lborderB = (short) 1;

org.junit.Assert.assertTrue(long4 == (-1L));

org.junit.Assert.assertTrue(long9 == 99L);

}

@Test

public void test02() throws Throwable {

if (debug)

System.out.format("%n%s%n", "RegressionTest0.test02");

Triangle triangle3 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long4 = triangle3.lborderA;

triangle3.lborderB = (short) 0;

long long9 = triangle3.diffOfBorders((long) 100, (long) (short) 1);

Triangle triangle10 = null;

try {

boolean b11 = triangle3.isTriangle(triangle10);

org.junit.Assert.fail("Expected exception of type java.lang.NullPointerException");

} catch (java.lang.NullPointerException e) {

}

org.junit.Assert.assertTrue(long4 == (-1L));

org.junit.Assert.assertTrue(long9 == 99L);

}

@Test

public void test03() throws Throwable {

if (debug)

System.out.format("%n%s%n", "RegressionTest0.test03");

Triangle triangle3 = new Triangle(100L, 10L, (long) (short) -1);

long long4 = triangle3.lborderC;

long long5 = triangle3.lborderB;

org.junit.Assert.assertTrue(long4 == (-1L));

org.junit.Assert.assertTrue(long5 == 10L);

}

@Test

public void test04() throws Throwable {

if (debug)

System.out.format("%n%s%n", "RegressionTest0.test04");

Triangle triangle3 = new Triangle((-1L), (-1L), 0L);

Triangle triangle7 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long8 = triangle7.lborderA;

triangle7.lborderB = (short) 0;

Triangle triangle14 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long15 = triangle14.lborderA;

java.lang.String str16 = triangle7.getType(triangle14);

long long17 = triangle14.lborderC;

java.lang.String str18 = triangle3.getType(triangle14);

long long19 = triangle14.lborderA;

org.junit.Assert.assertTrue(long8 == (-1L));

org.junit.Assert.assertTrue(long15 == (-1L));

org.junit.Assert.assertTrue("'" + str16 + "' != '" + "Illegal" + "'", str16.equals("Illegal"));

org.junit.Assert.assertTrue(long17 == 10L);

org.junit.Assert.assertTrue("'" + str18 + "' != '" + "Illegal" + "'", str18.equals("Illegal"));

org.junit.Assert.assertTrue(long19 == (-1L));

}

@Test

public void test05() throws Throwable {

if (debug)

System.out.format("%n%s%n", "RegressionTest0.test05");

Triangle triangle3 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long4 = triangle3.lborderA;

triangle3.lborderB = (short) 0;

Triangle triangle10 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long11 = triangle10.lborderA;

java.lang.String str12 = triangle3.getType(triangle10);

Triangle triangle16 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long17 = triangle16.lborderA;

triangle16.lborderB = (short) 0;

Triangle triangle23 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long24 = triangle23.lborderA;

java.lang.String str25 = triangle16.getType(triangle23);

boolean b26 = triangle3.isTriangle(triangle23);

triangle23.lborderB = 99L;

org.junit.Assert.assertTrue(long4 == (-1L));

org.junit.Assert.assertTrue(long11 == (-1L));

org.junit.Assert.assertTrue("'" + str12 + "' != '" + "Illegal" + "'", str12.equals("Illegal"));

org.junit.Assert.assertTrue(long17 == (-1L));

org.junit.Assert.assertTrue(long24 == (-1L));

org.junit.Assert.assertTrue("'" + str25 + "' != '" + "Illegal" + "'", str25.equals("Illegal"));

org.junit.Assert.assertTrue(b26 == false);

}

@Test

public void test06() throws Throwable {

if (debug)

System.out.format("%n%s%n", "RegressionTest0.test06");

Triangle triangle3 = new Triangle((-1L), (-1L), 0L);

Triangle triangle7 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long8 = triangle7.lborderA;

triangle7.lborderB = (short) 0;

Triangle triangle14 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long15 = triangle14.lborderA;

java.lang.String str16 = triangle7.getType(triangle14);

long long17 = triangle14.lborderC;

java.lang.String str18 = triangle3.getType(triangle14);

long[] long_array19 = triangle3.getBorders();

triangle3.lborderB = (-1L);

org.junit.Assert.assertTrue(long8 == (-1L));

org.junit.Assert.assertTrue(long15 == (-1L));

org.junit.Assert.assertTrue("'" + str16 + "' != '" + "Illegal" + "'", str16.equals("Illegal"));

org.junit.Assert.assertTrue(long17 == 10L);

org.junit.Assert.assertTrue("'" + str18 + "' != '" + "Illegal" + "'", str18.equals("Illegal"));

org.junit.Assert.assertNotNull(long_array19);

}

@Test

public void test07() throws Throwable {

if (debug)

System.out.format("%n%s%n", "RegressionTest0.test07");

Triangle triangle3 = new Triangle((long) (short) 0, (long) 10, (long) 100);

}

@Test

public void test08() throws Throwable {

if (debug)

System.out.format("%n%s%n", "RegressionTest0.test08");

Triangle triangle3 = new Triangle((-1L), (-1L), 0L);

triangle3.lborderA = 1;

Triangle triangle9 = new Triangle((-1L), (-1L), 0L);

Triangle triangle13 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long14 = triangle13.lborderA;

triangle13.lborderB = (short) 0;

Triangle triangle20 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long21 = triangle20.lborderA;

java.lang.String str22 = triangle13.getType(triangle20);

long long23 = triangle20.lborderC;

java.lang.String str24 = triangle9.getType(triangle20);

long[] long_array25 = triangle9.getBorders();

boolean b26 = triangle3.isTriangle(triangle9);

triangle3.lborderA = (byte) 1;

org.junit.Assert.assertTrue(long14 == (-1L));

org.junit.Assert.assertTrue(long21 == (-1L));

org.junit.Assert.assertTrue("'" + str22 + "' != '" + "Illegal" + "'", str22.equals("Illegal"));

org.junit.Assert.assertTrue(long23 == 10L);

org.junit.Assert.assertTrue("'" + str24 + "' != '" + "Illegal" + "'", str24.equals("Illegal"));

org.junit.Assert.assertNotNull(long_array25);

org.junit.Assert.assertTrue(b26 == false);

}

@Test

public void test09() throws Throwable {

if (debug)

System.out.format("%n%s%n", "RegressionTest0.test09");

Triangle triangle3 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long4 = triangle3.lborderA;

triangle3.lborderB = (short) 0;

long long9 = triangle3.diffOfBorders((long) 100, (long) (short) 1);

Triangle triangle13 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long14 = triangle13.lborderA;

triangle13.lborderB = (short) 0;

Triangle triangle20 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long21 = triangle20.lborderA;

java.lang.String str22 = triangle13.getType(triangle20);

Triangle triangle26 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long27 = triangle26.lborderA;

triangle26.lborderB = (short) 0;

Triangle triangle33 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long34 = triangle33.lborderA;

java.lang.String str35 = triangle26.getType(triangle33);

boolean b36 = triangle13.isTriangle(triangle33);

java.lang.String str37 = triangle3.getType(triangle13);

triangle3.lborderC = (byte) 0;

long long40 = triangle3.lborderC;

org.junit.Assert.assertTrue(long4 == (-1L));

org.junit.Assert.assertTrue(long9 == 99L);

org.junit.Assert.assertTrue(long14 == (-1L));

org.junit.Assert.assertTrue(long21 == (-1L));

org.junit.Assert.assertTrue("'" + str22 + "' != '" + "Illegal" + "'", str22.equals("Illegal"));

org.junit.Assert.assertTrue(long27 == (-1L));

org.junit.Assert.assertTrue(long34 == (-1L));

org.junit.Assert.assertTrue("'" + str35 + "' != '" + "Illegal" + "'", str35.equals("Illegal"));

org.junit.Assert.assertTrue(b36 == false);

org.junit.Assert.assertTrue("'" + str37 + "' != '" + "Illegal" + "'", str37.equals("Illegal"));

org.junit.Assert.assertTrue(long40 == 0L);

}

@Test

public void test10() throws Throwable {

if (debug)

System.out.format("%n%s%n", "RegressionTest0.test10");

Triangle triangle3 = new Triangle((long) (byte) 1, (long) (short) 100, (long) (-1));

long[] long_array4 = triangle3.getBorders();

org.junit.Assert.assertNotNull(long_array4);

}

@Test

public void test11() throws Throwable {

if (debug)

System.out.format("%n%s%n", "RegressionTest0.test11");

Triangle triangle3 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long4 = triangle3.lborderA;

triangle3.lborderB = (short) 0;

Triangle triangle10 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long11 = triangle10.lborderA;

java.lang.String str12 = triangle3.getType(triangle10);

long long13 = triangle10.lborderC;

long long14 = triangle10.lborderC;

triangle10.lborderC = (-1L);

org.junit.Assert.assertTrue(long4 == (-1L));

org.junit.Assert.assertTrue(long11 == (-1L));

org.junit.Assert.assertTrue("'" + str12 + "' != '" + "Illegal" + "'", str12.equals("Illegal"));

org.junit.Assert.assertTrue(long13 == 10L);

org.junit.Assert.assertTrue(long14 == 10L);

}

@Test

public void test12() throws Throwable {

if (debug)

System.out.format("%n%s%n", "RegressionTest0.test12");

Triangle triangle3 = new Triangle((-1L), (-1L), 0L);

triangle3.lborderA = 1;

Triangle triangle9 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long10 = triangle9.lborderA;

triangle9.lborderB = (short) 0;

long long15 = triangle9.diffOfBorders((long) 100, (long) (short) 1);

long long16 = triangle9.lborderA;

java.lang.String str17 = triangle3.getType(triangle9);

Triangle triangle21 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long22 = triangle21.lborderA;

triangle21.lborderB = (short) 0;

java.lang.String str25 = triangle9.getType(triangle21);

long long28 = triangle9.diffOfBorders((long) '#', (long) (byte) 1);

org.junit.Assert.assertTrue(long10 == (-1L));

org.junit.Assert.assertTrue(long15 == 99L);

org.junit.Assert.assertTrue(long16 == (-1L));

org.junit.Assert.assertTrue("'" + str17 + "' != '" + "Illegal" + "'", str17.equals("Illegal"));

org.junit.Assert.assertTrue(long22 == (-1L));

org.junit.Assert.assertTrue("'" + str25 + "' != '" + "Illegal" + "'", str25.equals("Illegal"));

org.junit.Assert.assertTrue(long28 == 34L);

}

@Test

public void test13() throws Throwable {

if (debug)

System.out.format("%n%s%n", "RegressionTest0.test13");

Triangle triangle3 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long4 = triangle3.lborderA;

triangle3.lborderB = (short) 0;

Triangle triangle10 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long11 = triangle10.lborderA;

java.lang.String str12 = triangle3.getType(triangle10);

Triangle triangle16 = new Triangle((-1L), (-1L), 0L);

Triangle triangle20 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long21 = triangle20.lborderA;

boolean b22 = triangle16.isTriangle(triangle20);

triangle20.lborderB = (byte) 100;

long long27 = triangle20.diffOfBorders((long) (-1), (long) (byte) -1);

boolean b28 = triangle3.isTriangle(triangle20);

triangle20.lborderC = 0L;

long long31 = triangle20.lborderA;

org.junit.Assert.assertTrue(long4 == (-1L));

org.junit.Assert.assertTrue(long11 == (-1L));

org.junit.Assert.assertTrue("'" + str12 + "' != '" + "Illegal" + "'", str12.equals("Illegal"));

org.junit.Assert.assertTrue(long21 == (-1L));

org.junit.Assert.assertTrue(b22 == false);

org.junit.Assert.assertTrue(long27 == 0L);

org.junit.Assert.assertTrue(b28 == false);

org.junit.Assert.assertTrue(long31 == (-1L));

}

@Test

public void test14() throws Throwable {

if (debug)

System.out.format("%n%s%n", "RegressionTest0.test14");

Triangle triangle3 = new Triangle((-1L), (-1L), 0L);

triangle3.lborderA = 1;

Triangle triangle9 = new Triangle((-1L), (-1L), 0L);

Triangle triangle13 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long14 = triangle13.lborderA;

triangle13.lborderB = (short) 0;

Triangle triangle20 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long21 = triangle20.lborderA;

java.lang.String str22 = triangle13.getType(triangle20);

long long23 = triangle20.lborderC;

java.lang.String str24 = triangle9.getType(triangle20);

long[] long_array25 = triangle9.getBorders();

boolean b26 = triangle3.isTriangle(triangle9);

long long27 = triangle9.lborderB;

org.junit.Assert.assertTrue(long14 == (-1L));

org.junit.Assert.assertTrue(long21 == (-1L));

org.junit.Assert.assertTrue("'" + str22 + "' != '" + "Illegal" + "'", str22.equals("Illegal"));

org.junit.Assert.assertTrue(long23 == 10L);

org.junit.Assert.assertTrue("'" + str24 + "' != '" + "Illegal" + "'", str24.equals("Illegal"));

org.junit.Assert.assertNotNull(long_array25);

org.junit.Assert.assertTrue(b26 == false);

org.junit.Assert.assertTrue(long27 == (-1L));

}

@Test

public void test15() throws Throwable {

if (debug)

System.out.format("%n%s%n", "RegressionTest0.test15");

Triangle triangle3 = new Triangle((-1L), (-1L), 0L);

Triangle triangle7 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long8 = triangle7.lborderA;

boolean b9 = triangle3.isTriangle(triangle7);

long long12 = triangle7.diffOfBorders((long) (byte) 1, (long) (byte) 10);

long long13 = triangle7.lborderB;

triangle7.lborderC = 1;

org.junit.Assert.assertTrue(long8 == (-1L));

org.junit.Assert.assertTrue(b9 == false);

org.junit.Assert.assertTrue(long12 == 9L);

org.junit.Assert.assertTrue(long13 == 100L);

}

@Test

public void test16() throws Throwable {

if (debug)

System.out.format("%n%s%n", "RegressionTest0.test16");

Triangle triangle3 = new Triangle((-1L), (-1L), 0L);

Triangle triangle7 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long8 = triangle7.lborderA;

boolean b9 = triangle3.isTriangle(triangle7);

triangle7.lborderB = (byte) 100;

long long14 = triangle7.diffOfBorders((long) (-1), (long) (byte) -1);

Triangle triangle18 = new Triangle(100L, 10L, (long) (short) -1);

triangle18.lborderB = (byte) -1;

boolean b21 = triangle7.isTriangle(triangle18);

Triangle triangle25 = new Triangle((-1L), (-1L), 0L);

triangle25.lborderA = 1;

Triangle triangle31 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long32 = triangle31.lborderA;

triangle31.lborderB = (short) 0;

long long37 = triangle31.diffOfBorders((long) 100, (long) (short) 1);

long long38 = triangle31.lborderA;

java.lang.String str39 = triangle25.getType(triangle31);

java.lang.String str40 = triangle18.getType(triangle25);

org.junit.Assert.assertTrue(long8 == (-1L));

org.junit.Assert.assertTrue(b9 == false);

org.junit.Assert.assertTrue(long14 == 0L);

org.junit.Assert.assertTrue(b21 == false);

org.junit.Assert.assertTrue(long32 == (-1L));

org.junit.Assert.assertTrue(long37 == 99L);

org.junit.Assert.assertTrue(long38 == (-1L));

org.junit.Assert.assertTrue("'" + str39 + "' != '" + "Illegal" + "'", str39.equals("Illegal"));

org.junit.Assert.assertTrue("'" + str40 + "' != '" + "Illegal" + "'", str40.equals("Illegal"));

}

@Test

public void test17() throws Throwable {

if (debug)

System.out.format("%n%s%n", "RegressionTest0.test17");

Triangle triangle3 = new Triangle((long) (byte) 1, (long) (short) 100, (long) (-1));

triangle3.lborderB = (byte) 10;

long long6 = triangle3.lborderA;

org.junit.Assert.assertTrue(long6 == 1L);

}

@Test

public void test18() throws Throwable {

if (debug)

System.out.format("%n%s%n", "RegressionTest0.test18");

Triangle triangle3 = new Triangle((-1L), (-1L), 0L);

triangle3.lborderA = 1;

Triangle triangle9 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long10 = triangle9.lborderA;

triangle9.lborderB = (short) 0;

long long15 = triangle9.diffOfBorders((long) 100, (long) (short) 1);

long long16 = triangle9.lborderA;

java.lang.String str17 = triangle3.getType(triangle9);

long[] long_array18 = triangle3.getBorders();

triangle3.lborderA = 0L;

org.junit.Assert.assertTrue(long10 == (-1L));

org.junit.Assert.assertTrue(long15 == 99L);

org.junit.Assert.assertTrue(long16 == (-1L));

org.junit.Assert.assertTrue("'" + str17 + "' != '" + "Illegal" + "'", str17.equals("Illegal"));

org.junit.Assert.assertNotNull(long_array18);

}

@Test

public void test19() throws Throwable {

if (debug)

System.out.format("%n%s%n", "RegressionTest0.test19");

Triangle triangle3 = new Triangle((-1L), (-1L), 0L);

Triangle triangle7 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long8 = triangle7.lborderA;

boolean b9 = triangle3.isTriangle(triangle7);

triangle3.lborderA = 100;

long long12 = triangle3.lborderB;

org.junit.Assert.assertTrue(long8 == (-1L));

org.junit.Assert.assertTrue(b9 == false);

org.junit.Assert.assertTrue(long12 == (-1L));

}

@Test

public void test20() throws Throwable {

if (debug)

System.out.format("%n%s%n", "RegressionTest0.test20");

Triangle triangle3 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long4 = triangle3.lborderA;

triangle3.lborderB = (short) 0;

Triangle triangle10 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long11 = triangle10.lborderA;

java.lang.String str12 = triangle3.getType(triangle10);

Triangle triangle16 = new Triangle((-1L), (-1L), 0L);

Triangle triangle20 = new Triangle((long) (short) -1, (long) 100, (long) (byte) 10);

long long21 = triangle20.lborderA;

boolean b22 = triangle16.isTriangle(triangle20);

triangle20.lborderB = (byte) 100;

long long27 = triangle20.diffOfBorders((long) (-1), (long) (byte) -1);

boolean b28 = triangle3.isTriangle(triangle20);

triangle20.lborderA = 1;

long long31 = triangle20.lborderA;

org.junit.Assert.assertTrue(long4 == (-1L));

org.junit.Assert.assertTrue(long11 == (-1L));

org.junit.Assert.assertTrue("'" + str12 + "' != '" + "Illegal" + "'", str12.equals("Illega

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值