开发者

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

开发者 https://www.devze.com 2023-03-26 02:48 出处:网络
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 attemptin

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

精彩评论

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