0

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

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

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);

我在想,到底是怎么测试这个的?美元值和符号不断变化,所以每次都是实际的!= 预期的。

任何建议将不胜感激!!!

4

3 回答 3

2

您通常不会针对生产服务器运行测试。取而代之的是,使用具有完全由您控制的可预测数据的测试服务器。

于 2012-06-22T20:39:06.963 回答
1

一些匹配但排除可变部分的正则表达式怎么样。

于 2012-06-22T20:37:50.670 回答
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。但这是另一种直观的看待方式。

于 2012-06-22T21:01:55.677 回答