当我直接从黄瓜的Given / When / Then语句打印输出时,它以漂亮的蓝色文本打印,但是如果我调用任何其他功能并在那里打印,它会以红色打印(而不是缩进)< / p>
示例功能:
Feature: Foo
Scenario: Foo2
Given something
Then something else
示例step_def:
Given /^something$/ do
puts "Pretty blue"
end
class AnyClass
def doSomething
puts "Scary red"
end
end
Then /^something else$/ do
AnyClass.new.doSomething
end
在下面的示例输出中,“Scary red”为红色,根本没有缩进,实际上是在黄瓜步骤之前打印的(“Then”子句)。 “漂亮的蓝色”是蓝色的,适当缩进,并在黄瓜步骤后输出。
Feature: Foo
Scenario: Foo2
Given something
Pretty blue
Scary red
Then something else
1 scenario (1 passed)
2 steps (2 passed)
0m0.001s
我是Ruby&amp;的新手黄瓜所以我甚至不肯定那些是这个问题的适当标签。有没有办法让其他类中调用的方法的输出与漂亮的格式匹配?
编辑:更多搜索表明,来自步骤内的放置的处理方式不同(如果格式不同,则包括它们),而不是来自其他函数的放置(从其他格式器中排除)。所以也许问题是,Ruby如何拦截步骤中的看跌期权?我怀疑他们正在实施他们自己的推杆,这是该课程的一部分。
答案 0 :(得分:0)
当编写黄瓜步骤的语法时,黄瓜已被覆盖(语法)变为彩色和缓冲。颜色取决于步骤是否通过,并且缓冲发生是因为它不会使输出着色直到所有内容都运行(因此它知道要打印哪种颜色)。
在语法步骤中传递自我并调用那些对象put会得到我所追求的行为。
红色是我的默认字体颜色的副作用。
即:
After /Some Condition/ do
some_object.test_something(self)
end
class SomeObject
def test_something(obj)
obj.puts "SomeText"
end
end