为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

潇潇雨雨 2023-08-04 15:36:38
我的学校作业涉及学习如何使用 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;    }}
查看完整描述

2 回答

?
达令说

TA贡献1821条经验 获得超6个赞

在这种情况下,您应该编写一个测试。您不需要再写了,因为它只是重复的。此测试应控制字段分配:


@Test

public 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(或者只是纯反射):


@Test

public 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"));

}


查看完整回答
反对 回复 2023-08-04
?
蝴蝶刀刀

TA贡献1801条经验 获得超8个赞

请参考这个例子。


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()));

    }



}


查看完整回答
反对 回复 2023-08-04
  • 2 回答
  • 0 关注
  • 116 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信