gpt4 book ai didi

unit-testing - 单元测试和冗长的设置字符串 : Style/Best Practice

转载 作者:行者123 更新时间:2023-12-04 07:09:04 25 4
gpt4 key购买 nike

我对在单元测试中使用冗长设置字符串的意见、实践和推荐的最佳实践感兴趣。

你更喜欢在线声明测试,接近你的测试,还是在某个文件中外部化?

请注意,我说的是特定于单个单元测试的测试 Assets ,因此不一定适合使用 setup() 方法。

我看到了两者的优点/缺点——我喜欢让对你的测试很重要的东西尽可能接近测试,但是在测试方法中,几行字符串设置很快就会变得很烦人。

例如,我正在编写一个快速解析器来从文件中去除未使用的 css 声明。我想测试给定一个特定的输入字符串,正确的文本被删除了。由于所有的字符串连接,我的测试变得非常嘈杂。

public void removesStyleFromText() 
{
StyleCleaner styleCleaner = new StyleCleaner();
String source = ".presentInFileOne {\r\n" +
"}\r\n" +
"\r\n" +
".presentInFileTwo {\r\n" +
" bottom-corners-rounded : false;\r\n" +
"}\r\n" +
".notUsed {\r\n" +
"}\r\n" +
"";

String actual = styleCleaner.removeDeclaration(source , "notUsed");

String expected = ".presentInFileOne {\r\n" +
"}\r\n" +
"\r\n" +
".presentInFileTwo {\r\n" +
" bottom-corners-rounded : false;\r\n" +
"}\r\n";

assertEquals(expected , actual);
}

鉴于这个例子,我可以将实际/预期外部化到外部文件中,但这也使得测试对于它实际测试的内容有点不清楚。

想法?

最佳答案

我个人更喜欢在这种情况下保持字符串内联。该字符串对于理解测试应该做什么很重要,因此必须从外部查找它似乎适得其反。

如果您有许多相同的测试,只是在输入的字符串和输入的字符串方面有所不同,那么故事会有些不同,您可能需要查看基于表格的测试解决方案。在 .Net 中,你有 mbunit。它允许您使用不同的预期输入/输出运行相同的测试,或者您可以查看 Fitnesse 之类的工具,这些工具允许您定义要测试的数据表。

关于unit-testing - 单元测试和冗长的设置字符串 : Style/Best Practice,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/657474/

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