假设我想为这样的方法创建一个单元测试:
public Car map(CarReq request) { Car car = new Car(); car.setPrice(carReq.getPrice()); car.setColour(carReq.getColour()); car.setType(carReq.getType()); // Other 20 lines like these return car; }
我可以模拟carRequest并告诉每个方法应该返回什么。但这就像没有测试任何东西一样,因为所有方法所做的都是从carReq获取值。
我可以创建一个测试carReq对象(不带模拟),并检查是否将相同的值复制到输出Car对象中。但这是很多工作,对吗?
有没有更聪明的方法?
您要测试方法的逻辑。
因此,如果该方法将a的属性复制CarReq
到Car
,则应测试以下内容:
@Test public void mapTest() { // Given CarReq carReq = new CarReq(10000D, ...); // When Car car = myClass.map(carReq); // Then Assert.assertEquals(car.getPrice(), carReq.getPrice()); // ... }