我对单元测试比较陌生,我正在试图找到一种以有意义的方式测试XHR请求的方法。
1)请求将各种脚本和其他资源提取到页面上,我想确保加载正确数量的资源,并且请求成功。
2)我应该对提供资源的服务使用实际请求吗?我在sinonjs.org上查看了fakeserver和fakexhr的请求,但我真的不知道那些可以提供有意义的测试。
3)我正在测试现有代码,我意识到这是非常没有意义的,但这是我需要做的。话虽如此,在某些方法中有很多代码可能会被分解为各种测试。我应该打破现有代码并为我的解释期望创建测试吗?或者只是为实际存在的东西编写测试?....如果这有意义的话。
谢谢, -John
答案 0 :(得分:3)
我发现使用sinon fakeServer返回各种测试响应非常有用,这些测试响应将运行我的客户端功能。您可以设置一系列测试,其中fakeServer响应返回可用于随后检查代码行为的数据。例如,假设您希望返回十个资源对象,您可以创建预先包装的xml或json来表示这些资源,然后检查您的代码是否已正确处理它们。在另一个测试中,当您只收到九个对象时,您的代码会做什么?
开始编写测试以涵盖现有代码。当这些测试通过时,开始将代码分解为易于理解且有意义的单元。如果测试仍然通过,那么很好,你只是重构了你的代码而不是无意中破坏了任何东西。此外,现在您已经拥有了更小的代码块,可以更容易地进行测试和理解。从这一点开始,你永远不会回头: - )