EasyMock - CreateNiceMock
EasyMock - CreateNiceMock
关于 EasyMock 的一个相当简单的问题。阅读了一堆资源,但不确定我遗漏了什么:
以下代码片段正在使用 Test-ng 创建单元测试:
@Test(groups = "unit")
public class SchoolTestEasyMock {
@Test
public void test1() {
School mockSchool = EasyMock.createNiceMock(School.class);
EasyMock.replay(mockSchool);
System.out.println(mockSchool.getSchoolNumber());
}
}
让我们假设学校 class 有一个简单的 getter 'getSchoolNumber' return 是一个整数。
上面的代码片段正在向控制台打印 'null'。因为我正在创建一个 'nice' 模拟,所以 'getSchoolNumber' return 的默认值不应该是 0 吗?我在创建漂亮的模拟时错过了什么吗?
If you would like a "nice" Mock Object that by default allows all method calls and returns appropriate empty values (0, null or false), use niceMock() instead.
由于Integer
是一个对象,默认值为null
。
如果将方法的 return 类型更改为 int
,则值将如预期的那样为 0
。
关于 EasyMock 的一个相当简单的问题。阅读了一堆资源,但不确定我遗漏了什么:
以下代码片段正在使用 Test-ng 创建单元测试:
@Test(groups = "unit")
public class SchoolTestEasyMock {
@Test
public void test1() {
School mockSchool = EasyMock.createNiceMock(School.class);
EasyMock.replay(mockSchool);
System.out.println(mockSchool.getSchoolNumber());
}
}
让我们假设学校 class 有一个简单的 getter 'getSchoolNumber' return 是一个整数。
上面的代码片段正在向控制台打印 'null'。因为我正在创建一个 'nice' 模拟,所以 'getSchoolNumber' return 的默认值不应该是 0 吗?我在创建漂亮的模拟时错过了什么吗?
If you would like a "nice" Mock Object that by default allows all method calls and returns appropriate empty values (0, null or false), use niceMock() instead.
由于Integer
是一个对象,默认值为null
。
如果将方法的 return 类型更改为 int
,则值将如预期的那样为 0
。