问题:
怎么测试一个对象的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方法是正确的。并用它来测试构造函数。
分享到:
相关推荐
6. **组织结构**:测试代码和被测试代码应分开放置,但保持相同的包结构,如 `src/java/` 用于源码,`src/test/` 用于测试代码。 7. **setUp 和 tearDown**:使用 `setUp` 和 `tearDown` 方法来设置和清理测试环境...
相比早期的JUnit 3.x版本,4.1不再要求测试方法必须以`test`开头,而是通过`@Test`注解来标记测试方法。 在Eclipse IDE中,使用JUnit非常方便,因为IDE通常已经集成了JUnit库。创建一个新的Java项目后,你可以开始...
在给定的例子中,有一个`Commodity_Parent`类,它包含私有的`commodity_name`和`commodity_price`属性,以及对应的getter和setter方法。这个类被`Commodity_Child`类继承,后者增加了一个私有的`Commodity_number`...
Junit提供了一些注解和断言,例如@Before、@After、@Test等,用于描述测试用例的生命周期和测试用例的断言。Junit单元测试可以帮助开发者快速地测试Java应用程序,提高软件的可靠性和稳定性。 四、 数据库开发过程...
在JUnit 4.1中,测试方法的命名可以自由选择,不再强制要求以`test`开头,但需要使用`@Test`注解来标识。同时,`setUp`和`tearDown`方法分别用`@Before`和`@After`注解,它们会在每个测试方法执行前后自动调用,用于...
在JUnit4及更高版本中,推荐使用`@Test`注解来标注测试方法,而不是继承`TestCase`类。 **2. setUp() 和 tearDown() 方法** - `setUp()` 方法:在每个测试方法执行前都会调用一次,用于设置测试环境,比如创建对象...
Eclipse for JavaEE 图解教程 Eclipse 是一个功能强大且...通过本教程,我们可以学习到 Eclipse 的一些重要用法,例如自动生成 Getter、Setter 和构造方法、自动生成接口和 JUnit 测试类、定制视图与 New 菜单项等。
- 提供getter方法来访问这些成员。 - 如果必要,可以使用反射来访问私有成员,但这是不推荐的,因为它破坏了封装性。 9. **包结构与基类接口**: 保持包结构不变,以免影响测试。同时,基类的接口不应随意更改,...
通常,你会在这里找到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 责任主体** - **由...
- 设置项目名称,例如“JUnitTest”。 - 指定项目的保存路径。 - 去除“创建主类”的勾选,因为这里不立即创建主类。 #### 三、编写用于测试的JavaBean - **创建JavaBean**:通过“文件”菜单中的“新建文件”...
它们拥有公有的getter和setter方法,使得在程序中能够方便地访问和修改其属性。在实际开发中,尤其是当涉及到数据模型之间的转换时,Bean Util工具类能极大地提高代码的可读性和可维护性。 常见的Bean Util工具有...
// 构造函数、getter和setter... } @Repository public interface UserRepository extends JpaRepository, Long> { } ``` 4. 编写JUnit测试,确保代码的正确性: ```java @SpringBootTest public class ...
7. **Test-driven Development (TDD)**:按照TDD的原则,先编写测试用例,然后编写满足这些测试的代码,这样可以确保代码一开始就满足需求,并保持高质量。 8. **持续集成**:项目可能已经配置了持续集成工具,如...
import org.springframework.test.context.junit4.SpringRunner; @RunWith(SpringRunner.class) @SpringBootTest public class MyTest { @Test public void testMethod() { // 使用JMockData生成测试数据 ...