我正在开发一个Rails应用程序,它依赖于外部API,例如Delicious。 所有API共享两个工作流程:
真实地测试它们我必须为每个API创建一个测试帐户,或者至少使用我的私有API。即使使用VCR
,因为它们会被调用一次。而我最大的问题是:我必须使用Date
和Time
来解决上述两种不同的工作流程。虽然Timecop
让它变得非常容易,但感觉就像屁股一样痛苦。
另一种方法是完全伪造API调用及其相应的响应,但这意味着没有真正的测试,而且我永远不会意识到API的变化或问题。
有什么建议吗?也许是两种方式的良好结合?
答案 0 :(得分:1)
两者都做。
首先模拟/存储常规运行频繁测试套件中的所有内容。为所有细粒度模型/控制器测试执行此操作。
然后添加端到端测试(例如,在集成测试中),其涵盖了实际(测试)服务器的常见工作流场景。
或者使用不同的测试套件进行端到端测试,例如黄瓜代替Test :: Unit,或selenium / Watir,只要它与您通常的测试套件不同