【发布时间】:2016-04-12 17:27:51
【问题描述】:
我正在开发 Rails 应用程序并尝试练习 TDD(使用 RSpec)。我的 lib 目录中有一个文件,其中包含一个字符串列表,以及一个读取该文件并从列表中随机选择一个字符串的方法。我还没有实现这个方法,因为我正在努力编写一个测试该功能的方法。
有很多方法可以从数组中随机选择一个对象,还有很多很好的回答问题,比如这里的this one,告诉我如何做到这一点(当涉及到实现时,我可能会使用Array#sample)。但我的期望应该是什么?我在想这样的事情:
expect(array).to include(subject.random_select)
这肯定会断言我的方法返回了一些预期值——但是断言该方法每次随机返回一个不同的字符串就足够了吗?有哪些替代方案,或者可能是其他测试来确保我已经覆盖了这种方法?我真的不能指望subject.random_select 等于伪造的输入,可以吗?
【问题讨论】:
-
文件是否是您正在测试的系统的一部分(例如,随附),它是否包含已知内容?还是由用户提供并可能包含任何内容?
标签: ruby unit-testing random rspec tdd