gpt4 book ai didi

java - 输出为文本墙时的单元测试

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:00:26 25 4
gpt4 key购买 nike

我目前正在测试我的应用程序的一部分(我们假设是一个名为 X 的类),它以反射 java 方法作为参数,并将基于它打印一些 java 代码(即是,它是一个代码生成器)。例如,当将 String.toString() 传递给 X 时,呈现的字符串输出将是:

public static java.lang.String toString(String thisObj, boolean isMonitoring) {
String thisObjOld = (String)thisObj.clone(thisObj, false);

if (isMonitoring) {
toStringPre(thisObj);
}

java.lang.String result = thisObj.toString_Original();

if (isMonitoring) {
toStringPost(thisObj, thisObjOld, result);
}

return result
}

现在,我想知道如何测试这个输出。我想(单独)测试不同的东西。

我知道最完美的做法是在打印之前对抽象表示进行断言,而不是对最终文本进行断言。但不幸的是,设置起来似乎工作量太大。

我要测试的例子有:

  • 如果返回类型正确(java.lang.String);
  • 如果方法的名称是正确的 (toString),以及它的参数`(String thisObj, boolean isMonitoring)。

如何更好地解决这个问题?使用正则表达式?使用 String.split()

最佳答案

如何编译生成代码 - 测试代码语法是否正确。

然后使用反射检查名称、参数和返回类型。

然后在 Mocked 环境中运行它以检查它是否做了它应该做的事情。

关于java - 输出为文本墙时的单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7711843/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com