我开始使用JUnitParams编写参数化测试,它的工作非常棒。例如,以下测试先用false
调用,然后用true
:调用
@Test
@Parameters ({ "false", "true" })
public void testBla (boolean foo) throws Exception
...
一个小问题是,我有一个自定义规则(如org.junit.rules.TestRule
),它只用于向日志写入一些附加信息。它目前所做的是
public Statement apply (final Statement statement, final Description description)
{
return new Statement ()
{
public void evaluate () throws Throwable
{
log.info (String.format ("RUNNING TEST %s::%sn",
description.getClassName (),
description.getMethodName ()));
...
当我只有两个如上所述的参数时,它为一个方法的两次执行写入相同的名称并不是问题,我可以简单地计数。但是,规则打印参数值仍然很有用,尤其是如果我有更多的参数值。
那么,有可能在自定义规则中找到测试参数吗?
我的最佳猜测:大多数参数化的junit插件都使用junit的Description
对象。你应该能够在你的规则中得到这个对象。但是这个对象中的内容以及它是否足以满足您的目的取决于您使用的特定插件。如果这个对你不好,试试其他