如果你想测试checkAndReturnDoubleIfOk
你不应该嘲笑它.
你所做的是错的 - 你是想模仿合作者,而不是被测试的课程.首先,您创建一个模拟,Product
其中所有方法都被模拟(checkAndReturnDoubleIfOk
也),然后尝试将其用作原始类.实际上你正在测试模拟的实现checkAndReturnDoubleIfOk
.
你的代码应该是这样的:
@Test(expected = WrongCostFormat.class) public void shouldThrowNumberFormatException() { Product p = new Product(); p.checkAndReturnDoubleIfOk("1.234"); }
当被测试的类使用另一个类时,应该被模拟的是另一个类.然后,您应该验证正在测试的类是否已与模拟类正确交互.
如果你想测试checkAndReturnDoubleIfOk
你不应该嘲笑它.
你所做的是错的 - 你是想模仿合作者,而不是被测试的课程.首先,您创建一个模拟,Product
其中所有方法都被模拟(checkAndReturnDoubleIfOk
也),然后尝试将其用作原始类.实际上你正在测试模拟的实现checkAndReturnDoubleIfOk
.
你的代码应该是这样的:
@Test(expected = WrongCostFormat.class) public void shouldThrowNumberFormatException() { Product p = new Product(); p.checkAndReturnDoubleIfOk("1.234"); }
当被测试的类使用另一个类时,应该被模拟的是另一个类.然后,您应该验证正在测试的类是否已与模拟类正确交互.