POJO是否有必要按照TDD进行测试覆盖?
Is it necessary to cover POJO by tests according to TDD?
我目前正在阅读 Uncle Bob 的书,试图在我的职业生涯中拥抱 TDD。目前我在怀疑是否有必要编写这样的测试:
public class Person {
private String firstName;
private String middleName;
private String lastName;
/*getters and setters*/
}
@Test
public void testPersonCreation() {
Person person = new Person();
person.setFirstName("Robert");
person.setMiddleName("Cecil");
person.setLastName("Martin");
Assertions.assertThat(person.getFirstName()).isEqualTo("Robert");
Assertions.assertThat(person.getMiddleName()).isEqualTo("Cecil");
Assertions.assertThat(person.getLastName()).isEqualTo("Martin");
}
这种方法的优缺点是什么?
如果您使用自动生成的 getters 和 setters 框架,如 Lombok,您将不需要对其进行测试
@Getter
@Setter
public class Person {
首先,在编写测试时使用代码覆盖工具来验证覆盖的内容。
当您为使用 pojo 的代码编写测试时,也应该涵盖 pojo getter 和 setter。这比仅使用 pojos 的测试更有价值,因为它表明 pojos 在应用程序代码的上下文中起作用。
如果我向 pojo 添加除 getter 和 setter 之外的方法,我会为它们添加测试。但是我尽量避免对 getter 和 setter 进行测试。
有用于此的测试框架(参见 this question)也可用于检查 equals 和 hashcode。
Is it necessary to cover POJO by tests according to TDD?
在 Test Driven Development by Example 中,Kent Beck 写道,TDD 由两个规则定义
- 除非你有一个失败的自动化测试,否则不要写一行新代码。
- 消除重复。
如果您认为 Kent Beck 于 2002 年左右撰写的文章具有权威性,那么是的 - 在您编写新 POJO 的一行之前,您必须编写一个自动化测试。
2008 年,an expert wrote
I get paid for code that works, not for tests, so my philosophy is to test as little as possible to reach a given level of confidence
我的解释是,如果您不是从自动化测试开始的,那么它就不是 TDD -- 但 TDD 并不是适用于所有情况的工具。
课程用马。
我目前正在阅读 Uncle Bob 的书,试图在我的职业生涯中拥抱 TDD。目前我在怀疑是否有必要编写这样的测试:
public class Person {
private String firstName;
private String middleName;
private String lastName;
/*getters and setters*/
}
@Test
public void testPersonCreation() {
Person person = new Person();
person.setFirstName("Robert");
person.setMiddleName("Cecil");
person.setLastName("Martin");
Assertions.assertThat(person.getFirstName()).isEqualTo("Robert");
Assertions.assertThat(person.getMiddleName()).isEqualTo("Cecil");
Assertions.assertThat(person.getLastName()).isEqualTo("Martin");
}
这种方法的优缺点是什么?
如果您使用自动生成的 getters 和 setters 框架,如 Lombok,您将不需要对其进行测试
@Getter
@Setter
public class Person {
首先,在编写测试时使用代码覆盖工具来验证覆盖的内容。
当您为使用 pojo 的代码编写测试时,也应该涵盖 pojo getter 和 setter。这比仅使用 pojos 的测试更有价值,因为它表明 pojos 在应用程序代码的上下文中起作用。
如果我向 pojo 添加除 getter 和 setter 之外的方法,我会为它们添加测试。但是我尽量避免对 getter 和 setter 进行测试。
有用于此的测试框架(参见 this question)也可用于检查 equals 和 hashcode。
Is it necessary to cover POJO by tests according to TDD?
在 Test Driven Development by Example 中,Kent Beck 写道,TDD 由两个规则定义
- 除非你有一个失败的自动化测试,否则不要写一行新代码。
- 消除重复。
如果您认为 Kent Beck 于 2002 年左右撰写的文章具有权威性,那么是的 - 在您编写新 POJO 的一行之前,您必须编写一个自动化测试。
2008 年,an expert wrote
I get paid for code that works, not for tests, so my philosophy is to test as little as possible to reach a given level of confidence
我的解释是,如果您不是从自动化测试开始的,那么它就不是 TDD -- 但 TDD 并不是适用于所有情况的工具。
课程用马。