开发者

Using Rspec 2 to test a command line application's UI layer

I'm writing a command-line application in Ruby. I'm rather familiar with Rspec 2, as it's used in some Rails applications I'm working on. I'm writing a command-line application and I'm attempting to use Rspec 2 for BDD.

How can I test the user interface layer of my appli开发者_高级运维cation? I need to give the application interactive input, or check for certain output printed using puts. Also, is there any way to suppress the STDOUT output? When I run autotest, the output of my application gets printed between the status outputs of rspec, making it extremely hard to read.


Here's an example that should help you. I use it in one of my apps that I test with Minitest, but it should be easy to translate to Rspec.

def setup
  $stdout = StringIO.new
  ...
end

This gets rid of the app's output in between the test results, since stdout will be written to a StringIO object. The same way you can also test if something specific got output, since you can check the StringIO object against regular expressions.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜