程序问答   发布时间:2022-06-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何以正确的方式测试 JUnit 的构造函数?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何以正确的方式测试 JUnit 的构造函数??

开发过程中遇到如何以正确的方式测试 JUnit 的构造函数?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何以正确的方式测试 JUnit 的构造函数?的解决方法建议,希望对你解决如何以正确的方式测试 JUnit 的构造函数?有所启发或帮助;

我目前正在为某些代码编写一个 Junit 测试套件。

我正在做的是,有一个名为 Person 的类,其中它的构造函数具有名称、高度和重量变量。

在其构造函数中,如果名称的字符数超过 20,则会引发异常。

如果测试需要测试构造函数不接受超过20个字符的名字,我该如何编写测试方法?

例如,如果我写:

@Test (expected = IllegalArgumentexception.class)
public voID testPersoin() {
Person person = new Person("BobBobBobBobBobBobBobBobBobBobBobBobBobBobBobBobBobBob","172","62");
}

当我运行它时,它会通过测试用例,但它只是测试名称的长度: “BobBobBobBobBobBobBobBobBobBobBobBobBobBobBobBobBobBobBob”,但不能使用更长或更短的名称。

有没有什么合适的方法可以测试names的字符是否大于20? 我应该在测试方法中编写 if/else 条件吗?我应该如何在测试套件中展示 if 的边界?

谢谢!

解决方法

我不确定您需要什么,但也许这就是您所追求的:

@Test (expected = IllegalArgumentexception.class)
public void testPersoin() {
    // Extract the name
    String name = "BobBobBobBobBobBobBobBobBobBobBobBobBobBobBobBobBobBob";
    // Assert that it is over 20 characters long
    assertTrue(name.length() > 20);
    person = new Person(name,"172","62");
}

有时您可能还需要在测试前断言测试参数是有效的。但这不是最好的方法。最好只是让测试尽可能清晰,处理所有案例并正确命名案例,例如:

private static final String NAME_10 = "0123456789"; // below 20
private static final String NAME_20 = NAME_10 + NAME_10; // exactly 20
private static final String NAME_21 = NAME_20 + "x"; // over 20

private Person person;

@Test(expected = IllegalArgumentexception.class)
public void personNameOver20Throws() {
    new Person(NAME_21,"62");
}

// I assume that null and empty names are not allowed either
@Test(expected = IllegalArgumentexception.class)
public void personNameNullThrows() {
    new Person(null,"62");
}

@Test(expected = IllegalArgumentexception.class)
public void personNameEmptyThrows() {
    person = new Person("","62");
}

@Test
public void personNameBelow20Works() {
    person = new Person(NAME_10,"62");
}

@Test
public void personNameExactly20Works() {
    person = new Person(NAME_10,"62");
}
,

有什么问题:

if(name==null || name.length()>20)
  throw new IllegalArgumentexception();
...//rest of code in constructor

大佬总结

以上是大佬教程为你收集整理的如何以正确的方式测试 JUnit 的构造函数?全部内容,希望文章能够帮你解决如何以正确的方式测试 JUnit 的构造函数?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: