编辑:用'retrieve.name.equals("name1")'替换'retrieve.name == "name1"'。
EDIT2:添加了@BeforeClass 和@AfterClass(信用:http ://digitalsanctum.com/2012/06/01/play-framework-2-tutorial-ebean-orm/ )。
我正在为一个游戏网络应用程序编写 JUnit 测试,出于某种奇怪的原因,我似乎无法修改数据库条目。这是我能想到的最简单的例子来说明这个问题:
@BeforeClass
public static void setup() throws IOException {
app = Helpers.fakeApplication(Helpers.inMemoryDatabase());
Helpers.start(app);
server = Ebean.getServer("default");
ServerConfig config = new ServerConfig();
config.setDebugSql(true);
ddl = new DdlGenerator((SpiEbeanServer) server, new H2Platform(), config);
// drop
String dropScript = ddl.generateDropDdl();
ddl.runScript(false, dropScript);
// create
String createScript = ddl.generateCreateDdl();
ddl.runScript(false, createScript);
}
@AfterClass
public static void stopApp() {
// drop
String dropScript = ddl.generateDropDdl();
ddl.runScript(false, dropScript);
Helpers.stop(app);
}
@Test
public void UserModify(){
// create user (User extends Model)
User user = new User();
user.id = (long) 1;
user.name = "name1";
user.save();
// modify
user.name = "name2";
user.update();
user.save();
// look-up
User retrieve = User.find.byId((long) 1);
assertFalse("Old name", retrieve.name.equals("name1"));
}
不用说这应该通过,但它没有...我知道您可以使用“update()”来更改数据库字段,因为项目中的其他人说他这样使用它并且它有效。
播放框架文档:http ://www.playframework.com/documentation/2.1.1/Home
任何想法为什么这个测试失败?