`
jiangduxi
  • 浏览: 456463 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Junit Test a getter

阅读更多
  问题:
  怎么测试一个对象的get方法?怎么判断哪些需要测试,哪些不需要呢?
情景:
   对于JUnit测试的新兵来说也是程序测试的新兵。他们最想知道的是什么要测试,什么不需要测试。所有一般来说先从最简单的测试开始入手是个好的选择。但是正因为是新兵所以会出现编写很多很多的测试。导致认为测试无聊而导致情绪的低落;在者这样的测试实际上从效果上不怎么好。希望测试人员要注意尽量编写有效测试案例。
原则:
   第一个原则: 如果一个get方法只是简单的返回域内的值,那么就不用去考虑去为它写测试程序;但是,如果这个方法做了一些更为复杂的操作,那么还是要考虑测试一下。如果你决定为它写测试程序,其实也很简单:因为一个get方法有返回值,所以可以直接比较期望值和实际返回值。例如
public class SongTest extends TestCase{
  Song song = new Song("Bicyclops","Fleck", 260);
  assertEquals(4.333333d, song.getDurationInMinutes(),0.000001d);
   }


public class Song{
   private  String name;
   private  String artistName;
   private  int duration;

 public Song(String name, String artistName, int duration){
   this.name = name;
   this.artistName = Name;
   this.duration = duration;
  } 

 public double getDurationInMinutes(){
   return (double)duration / 60.0d;
  }
   }

或者
 public class Song{
   private  String name;
   private  String artistName;
   private  int duration;
   private  double durationInSeconds

 public Song(String name, String artistName, int duration){
   this.name = name;
   this.artistName = Name;
   this.duration = duration;
   this.durationInSeconds = (double) duration / 60.0d;
  } 

 public double getDurationInMinutes(){
   return durationInSeconds;
    }
   }

第二种实行方法在构造函数中就将其进行格式转换,以备将来使用。这是一种效率优化的策略。但是这种情况下,你还是应该进行这个测试,因为你现在验证的是构造函数是否进行了正确的运算。这时候测试程序认为get方法是正确的。并用它来测试构造函数。
分享到:
评论

相关推荐

    JUnit是什么?介绍

    6. **组织结构**:测试代码和被测试代码应分开放置,但保持相同的包结构,如 `src/java/` 用于源码,`src/test/` 用于测试代码。 7. **setUp 和 tearDown**:使用 `setUp` 和 `tearDown` 方法来设置和清理测试环境...

    大量JUnit学习资料

    相比早期的JUnit 3.x版本,4.1不再要求测试方法必须以`test`开头,而是通过`@Test`注解来标记测试方法。 在Eclipse IDE中,使用JUnit非常方便,因为IDE通常已经集成了JUnit库。创建一个新的Java项目后,你可以开始...

    Junit4单元测试

    - 测试方法以`test`开头,如`testMyMethod`,JUnit会按方法定义的顺序执行。 - 使用断言如`assertXXX`和`fail`来判断测试结果,辅助日志信息可以帮助定位问题。如果方法抛出异常,会被视为错误;断言失败则表示...

    JUnit4利用反射机制测试类的私有成员

    在给定的例子中,有一个`Commodity_Parent`类,它包含私有的`commodity_name`和`commodity_price`属性,以及对应的getter和setter方法。这个类被`Commodity_Child`类继承,后者增加了一个私有的`Commodity_number`...

    软件测试(Junit单元测试)汇编.pdf

    Junit提供了一些注解和断言,例如@Before、@After、@Test等,用于描述测试用例的生命周期和测试用例的断言。Junit单元测试可以帮助开发者快速地测试Java应用程序,提高软件的可靠性和稳定性。 四、 数据库开发过程...

    JUnit学习笔记JUnit学习笔记JUnit学习笔记

    在JUnit 4.1中,测试方法的命名可以自由选择,不再强制要求以`test`开头,但需要使用`@Test`注解来标识。同时,`setUp`和`tearDown`方法分别用`@Before`和`@After`注解,它们会在每个测试方法执行前后自动调用,用于...

    JUnit单元测试.pdf

    在JUnit4及更高版本中,推荐使用`@Test`注解来标注测试方法,而不是继承`TestCase`类。 **2. setUp() 和 tearDown() 方法** - `setUp()` 方法:在每个测试方法执行前都会调用一次,用于设置测试环境,比如创建对象...

    Eclipse for JavaEE图解教程

    Eclipse for JavaEE 图解教程 Eclipse 是一个功能强大且...通过本教程,我们可以学习到 Eclipse 的一些重要用法,例如自动生成 Getter、Setter 和构造方法、自动生成接口和 JUnit 测试类、定制视图与 New 菜单项等。

    JOOD_Test使用指南1

    - 提供getter方法来访问这些成员。 - 如果必要,可以使用反射来访问私有成员,但这是不推荐的,因为它破坏了封装性。 9. **包结构与基类接口**: 保持包结构不变,以免影响测试。同时,基类的接口不应随意更改,...

    基于Maven+JUnit+Lombok+MyBatis+MySQL的简易图书管理系统源码.zip

    通常,你会在这里找到src/main/java目录存放Java源代码,src/main/resources存放资源配置,src/test/java存放测试代码,pom.xml是Maven的项目对象模型文件,还有可能包含数据库脚本、日志文件等其他项目相关文件。...

    单元测试教程

    - **Code a little, test a little:** 在编写代码的过程中随时进行测试,即编写一小段代码后立即对其进行测试。 - **Code all, test all:** 在完成全部编码工作后,再进行全面的测试。 **1.3 责任主体** - **由...

    NetBeans使用教程入门篇

    - 设置项目名称,例如“JUnitTest”。 - 指定项目的保存路径。 - 去除“创建主类”的勾选,因为这里不立即创建主类。 #### 三、编写用于测试的JavaBean - **创建JavaBean**:通过“文件”菜单中的“新建文件”...

    bean_util_test.zip

    它们拥有公有的getter和setter方法,使得在程序中能够方便地访问和修改其属性。在实际开发中,尤其是当涉及到数据模型之间的转换时,Bean Util工具类能极大地提高代码的可读性和可维护性。 常见的Bean Util工具有...

    spring-database.zip

    // 构造函数、getter和setter... } @Repository public interface UserRepository extends JpaRepository, Long> { } ``` 4. 编写JUnit测试,确保代码的正确性: ```java @SpringBootTest public class ...

    UserRegistration-JUnit

    7. **Test-driven Development (TDD)**:按照TDD的原则,先编写测试用例,然后编写满足这些测试的代码,这样可以确保代码一开始就满足需求,并保持高质量。 8. **持续集成**:项目可能已经配置了持续集成工具,如...

    JMockData使用手册

    import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class MyTest { @Test public void testMethod() { // 使用JMockData生成测试数据 ...

Global site tag (gtag.js) - Google Analytics