为构造函数编写 JUnit 测试用例

我的学校作业涉及学习如何使用 JUnit4。我需要确保这个构造函数正常工作,但是,我不确定如何做到这一点。有一个用于平衡的 getter,因此测试构造函数是否可以使用它非常容易,但是,我不知道如何编写涉及 user 和 pass 的测试用例,因为它们没有 getter。我是否为每个单独的参数编写一个案例?为返回值的方法编写案例并不太困难,但我对为这个构造函数编写案例一无所知。谢谢!


public class BankAccount {


    // Starting balance

    private float balance = 0.0f;

    // Username and password

    private char[] username = null;

    private char[] password = null;



    public BankAccount(float balance, char[] user,char[] pass) {

        this.balance = balance;

        this.username = user;

        this.password = pass;

    }

}


潇潇雨雨
浏览 121回答 2
2回答

达令说

在这种情况下,您应该编写一个测试。您不需要再写了,因为它只是重复的。此测试应控制字段分配:@Testpublic void propertiesAreSetOnBankAccountConstructor() {    float balance = 100F;    char[] userNameArray = {'u'};    char[] passArray = {'p'};    BankAccount testedObject = new BankAccount(balance, userNameArray, passArray);    assertEquals(balance, testedObject.getBalance(), 0F);    assertSame(userNameArray, testedObject.getUsername());    assertSame(passArray, testedObject.getPassword());}更新:如果没有可以使用的吸气剂org.springframework.test.util.ReflectionTestUtils(或者只是纯反射):@Testpublic void propertiesAreSetOnBankAccountConstructor() {    float balance = 100F;    char[] userNameArray = {'u'};    char[] passArray = {'p'};    BankAccount testedObject = new BankAccount(balance, userNameArray, passArray);    assertEquals(balance, ((Float)ReflectionTestUtils.getField(testedObject, "balance")), 0F);    assertSame(userNameArray, ReflectionTestUtils.getField(testedObject, "username"));    assertSame(passArray, ReflectionTestUtils.getField(testedObject, "password"));}

蝴蝶刀刀

请参考这个例子。import static org.junit.Assert.assertThat;import org.junit.Test; public class CalculatorTest {    @Test        public void constructorTest(){        private Calculator c;        c = new Calculator(4, 5);        assertThat(9, is(c.sum()));    }}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java