据我所知“单元测试不应该测试内部实现细节以便不会使该方法的重构复杂化”。那么,我该如何测试这种方法呢?带有副作用的单元测试方法
deleteOrder = (order) ->
backendService('deleteOrder', order.id)
cacheOfOrders.delete(order)
从我的单元测试环境(茉莉花),我可以打电话deleteOrder和模拟后端电话,但我不能访问到cacheOfOrders。我想检查一下cacheOfOrders.length是否缩小了。也许我做错了,我不应该测试内部细节,但是如果我有一个像前一个方法但没有后端调用的方法呢?
你可以创建一个'cachOfOrders'对象作为一个单独的测试,你可以运行吗? – gmiley 2015-02-24 19:52:14
cacheOfOrders对于有问题的服务是私有的。我无法访问或参考它。 – 2015-02-24 19:58:07
我的意思是,什么是cacheOfOrders的一个实例?你可以测试该类的新实例,而不是通过实际实现它的内部工作来测试它吗?如果它是开发人员创建的自定义类,则应该对其进行测试。如果它是框架提供的标准类,则不需要打扰它。 – gmiley 2015-02-25 12:15:58