如果gem有rails依赖项,你认为以一种独立运行或在rails项目下运行它们的方式编写gem测试会更好吗?
答案 0 :(得分:6)
gem应该是一段独立行为的代码。否则它是应用程序的一部分,因此测试也应该独立创建。通过这种方式,其他人(假设)也可以执行测试。如果测试取决于您的应用,则其他人无法测试您的宝石。
此外,当您想要测试您的gem时,它不会因为您的应用程序失败而失败。在您的宝石通过测试后,您可以测试应用程序,知道您的宝石运行良好(假设您测试了所有内容)。
gem是否依赖于Rails不是问题,因为Rails也已经过测试(你可以认为它正常工作)。所以这些依赖关系不会(/应该)影响你的gem。
答案 1 :(得分:0)
我会说这取决于gem需要的依赖类型。例如。如果它只是ActiveRecord,那么很容易将它包含在您的测试套件中。在更复杂的情况下,您始终可以模拟一些所需的功能。在非常复杂的情况下,创建测试应用程序总比没有好(IMO)。