我有一个使用ArgumentCaptor的java项目,以断言对特定模拟对象(存根)的调用。是否有等效的Rails Rspec ArgumentCaptor? 我希望能够模拟一个ActiveRecord模型并比较断言传递给保存调用的参数。
更新1
以下是使用ArgumentCaptor的Java代码示例。请注意,能够修饰模拟以收集传递给您正在测试的方法的所有对象,然后对它们进行断言。
var myString = "George's - super duper (Computer)";
var myOtherString = myString
// Remove non-whitespace, non-alphanumeric characters from the string (note: ^ inverses the character class)
// also trim any whitespace from the beginning and end of the string (so we don't end up with hyphens at the start and end of the string)
.replace(/^\s+|[^\s\w]+|\s+$/g, "")
// Replace the remaining whitespace with hyphens
.replace(/\s+/g, "-")
// Finally make all characters lower case
.toLowerCase();
console.log(myString, '=>', myOtherString);
答案 0 :(得分:0)
这似乎是在RSpec中实现Mockito的首次尝试: rspec-fire
RSpec3现在支持Mocks: rspec3-mocks
Sandi Metz关于Mocks的话题很好: TDD magic tricks
关于Ruby中的Mocks的讨论非常有用: Why you don't know mocks
答案 1 :(得分:0)
RSpec 对模拟的支持允许使用块,它提供了“捕获”参数的可能性,如下所示
expect(a_mock).to receive(:save) {|arg| expect(arg.name).to eq "name"}