java 基于属性的测试Java与Quickcheck,为SoCraTes Soltau 2016的PBT会议制作的代码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 基于属性的测试Java与Quickcheck,为SoCraTes Soltau 2016的PBT会议制作的代码相关的知识,希望对你有一定的参考价值。

import org.junit.*;

import static org.assertj.core.api.AssertionsForInterfaceTypes.assertThat;

public class FizzBuzzTDDTest {
    @org.junit.Test
    public void it_returns_1_for_1() {
        assertThat(FizzBuzzTDD.fizzBuzz(1)).isEqualTo("1");
    }

    @Test
    public void it_returns_2_for_2() {
        assertThat(FizzBuzzTDD.fizzBuzz(2)).isEqualTo("2");
    }
}
public class FizzBuzzTDD {
    public static String fizzBuzz(int i) {
        if(i%15 == 0) return "FizzBuzz";
        if(i%3 == 0) return "Fizz";
        if(i%5 == 0) return "Buzz";

        return String.valueOf(i);
    }
}
import com.tngtech.java.junit.dataprovider.*;
import org.junit.*;
import org.junit.runner.*;

import static org.assertj.core.api.Assertions.assertThat;

@RunWith(DataProviderRunner.class)
public class FizzBuzzParametrizedTest {

    @DataProvider
    public static Object[][] times3() {
        return new Object[][]{{3},{6}};
    }

    @Test
    @UseDataProvider("times3")
    public void it_returns_fizz_when_times_3(int n) {
        assertThat(FizzBuzzTDD.fizzBuzz(n)).isEqualTo("Fizz");

    }

    @DataProvider
    public static Object[][] times5() {
        return new Object[][]{{5},{10}};
    }

    @Test
    @UseDataProvider("times5")
    public void it_returns_buzz_when_times_5(int n) {
        assertThat(FizzBuzzTDD.fizzBuzz(n)).isEqualTo("Buzz");

    }

    @DataProvider
    public static Object[][] times15() {
        return new Object[][]{{15},{30}};
    }

    @Test
    @UseDataProvider("times15")
    public void it_returns_fizzbuzz_when_times_15(int n) {
        assertThat(FizzBuzzTDD.fizzBuzz(n)).isEqualTo("FizzBuzz");

    }
}
import com.pholser.junit.quickcheck.*;
import com.pholser.junit.quickcheck.runner.*;
import org.junit.runner.*;

import static org.assertj.core.api.Java6Assertions.*;
import static org.hamcrest.core.IsEqual.*;
import static org.junit.Assume.*;

@RunWith(JUnitQuickcheck.class)
public class FizzBuzzPropertiesTest {
    @Property
    public void multiple_of_three_contains_fizz(int n) {
        assumeThat(n%3, equalTo(0));
        assertThat(FizzBuzzTDD.fizzBuzz(n)).contains("Fizz");
    }
    @Property
    public void multiple_of_five_contains_buzz(int n) {
        assumeThat(n%5, equalTo(0));
        assertThat(FizzBuzzTDD.fizzBuzz(n)).contains("Buzz");
    }
}

以上是关于java 基于属性的测试Java与Quickcheck,为SoCraTes Soltau 2016的PBT会议制作的代码的主要内容,如果未能解决你的问题,请参考以下文章

Agitar 和 Quickcheck 基于属性的测试有啥区别?

基于Java+HttpClient+TestNG的接口自动化测试框架------ 小结与展望

基于Java+HttpClient+TestNG的接口自动化测试框架------ 小结与展望

Selenium Webdriver UI层自动化测试基础与进阶篇-基于java语言

基于 Java Web 的毕业设计选题管理平台--测试报告与用户手册

基于JAVA语言的selenium测试基础总结