module gameSystem
Class client
....
...
...
def accounts_by_id(account_id)
response = query_account(CGI.escape(account_id))
JSON.parse(response.body)
end
...
...
...
end
我有上面的代码,其中accounts_by_id方法位于类Client中。此方法返回JSON.parse(response.body)。有谁知道我怎么可以在rails中为这个方法模拟或使用存根来返回一些东西。
答案 0 :(得分:0)
我使用Mocha来模拟/存根测试函数。这会产生类似
的结果 Client.any_instance.expects(:query_account).with("my-account-id").returns([some object to return])
在测试中调用此函数的行之前。
但是,这不会导致实际的断言,如果没有符合期望的函数调用则会失败,这在我看来并不理想。如果传入的帐户ID不符合预期,则也会失败(尽管不需要with
。)
Here是Mocha的文档,因此您可以更好地了解它的使用方法。我提供这个答案是因为这已经完成了我过去所需要的,但我很想知道是否有更好的解决方案。