我创建了一个应用程序,每天自动发推两次。现在我被告知要编写测试文件。
推文本身是由字符串和数据库中的数据生成的。
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);
我在想,有人甚至测试这个怎么样?美元价值和符号不断变化,所以每次实际!=预期。
任何建议都将非常感谢!!!
答案 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。但这是另一种看待它的直观方式。