我有一个使用反引号的方法,但存根不适用它.它拉动了ls的结果:
class TestHelper
def self.test_method
`ls`
end
end
Run Code Online (Sandbox Code Playgroud)
rspec测试:
describe TestHelper do
describe '.test_method' do
subject { described_class.test_method }
before { Kernel.stub(:`).and_return("test_dir") }
it { expect(subject).to eql("test_dir") }
end
end
Run Code Online (Sandbox Code Playgroud)
Ram*_*yag 10
TestHelper收到它,然后委托给Kernel.所以,存根TestHelper:
describe TestHelper do
describe '.test_method' do
subject { described_class.test_method }
before { allow(described_class).to receive(:`).and_return("test_dir") }
it { is_expected.to eql("test_dir") }
end
end
Run Code Online (Sandbox Code Playgroud)
小智 3
包装ls一个方法,然后将该方法存根掉。
def ls
`ls`
end
Run Code Online (Sandbox Code Playgroud)
存根此方法以返回您想要的任何内容。您不需要测试系统调用。
| 归档时间: |
|
| 查看次数: |
4365 次 |
| 最近记录: |