如何测试字符串创建?使用db中的数据创建字符串时

时间:2012-06-22 20:36:07

标签: java string testing

我创建了一个应用程序,每天自动发推两次。现在我被告知要编写测试文件。

推文本身是由字符串和数据库中的数据生成的。

String actual = genTweet();        
String expected = "Company Most Active ($Vol. in Millions) | SCZZL $19.5 | HUTC $18.1 | TSCDY $18.0 | TOELY $16.2 | GBGM $15.7 | More at: http://www.website.com/home";
assertEquals(expected, actual);

我在想,有人甚至测试这个怎么样?美元价值和符号不断变化,所以每次实际!=预期。

任何建议都将非常感谢!!!

3 个答案:

答案 0 :(得分:2)

您通常不会对生产服务器运行测试。相反,请使用完全由您控制的可预测数据的测试服务器。

答案 1 :(得分:1)

如何匹配但排除变量部分的正则表达式。

答案 2 :(得分:0)

假设这是您的genTweet()函数:

public String getTweet(List<Activity> activities) {
  String tweetText = "Company Most Active ($Vol. in Millions)";
  for (Activity activity : activities) {
    tweetText = String.format("%s | %s $%.02f", tweetText, activity.getCompanyName(), activity.getMoney());
  }
  return tweetText;
}

现在,您可以控制genTweet()函数使用的信息。在生产中,它将从数据库或任何其他存储引擎填充。在开发模式下,从本地数据库快照。

在测试期间,您通常会使用setUp()方法填充它们。

// setUp()
List<Activity> activities = new List();
activities.add(new Activity("A", 1.10));
activities.add(new Activity("B", 2.209));

// Expected
String expected = "Company Most Active ($Vol. in Millions) | A $1.10 | B $2.21";

// Real
String real = genTweet(activities);

assertEquals(expected, real);

我要谈谈Mock Objects。但这是另一种看待它的直观方式。