???????????????????????Щ???????е?????????java?????д????????????Щ????????????????????????á???????????????????????????????
?????????????????????????SQL??????Щ?洢??????????????ó??????????????м?????????????в????
??????????????????????????????????

?????????????????

???????Щ??????????????????????????????????????????????????д????????????????????????У??????????????????е????????????????????????????????????

????????????????????????????????????????????飬?????????????????????????????????????????????????????????????o??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????б?????δ????????????????????г???????????????????????????????????????????????????????????????????????????????б??????

????????????????????????????????Χ????????????????????????????????????????????????????????????????????Щ??????????????????д?????????????????????????????????д?????????????????????????

??????????????????

???????????????????????????????????????????????????????????????????????????????????????????????????????

???????????????洢?????????д???????????????????????????Щ???????μ?????????????

public class UserDatabase
{
...
public void insert(User user)
{
PreparedStatement ps = connection.prepareCall("
{ call User_insert(????) }");
ps.setString(1?? user.getEmail());
ps.setString(2?? user.isBad());
// In real life?? this would be a boolean.
ps.executeUpdate();
ps.close();
}
...
}

???????????????????

public class TestUserDatabase extends TestCase
{
...
public void testInsert()
{
// Insert a test user:
User user = new User("some@email.address");
UserDatabase database = new UserDatabase();
database.insert(user);
// Make sure the data really got there:
User db_user = database.find("some@email.address");
assertTrue("Expected non-null result"??
db_user != null);
assertEquals("Wrong email"??
"some@email.address"?? db_user.getEmail());
assertEquals("Wrong bad flag"?? false?? db_user.isBad());
}
...
}

???????и???????????????Щ??????????date?????????

assertTrue??assertEquals??????????????????????????????????????????????????????Щ???????????????????????У????????????????????Щ???????????java?????д???????Junit??(??????)??????????????????????C?? C++?? Perl?? Python?? .NET (all languages)?? PL/SQL?? Eiffel?? Delphi?? VB???????????

?????????????????в???????????????????????????????????????????

??????????

????????????????????????????????????????????????????????????????????????

???????????????????????????Щ????????????????????????????????????aaa@test.testing?????????????????????????????????????????????????????????????????@test.testing????β???
??????????????????????????????б????????????磬????????????????????????????????????????????в?????????????????????????????

??????????????????????

???ò?????????????????????Э????????????????????????????????

???????????Щ????????????????????Щ?????????????????????????

???Щ????£??????????Щ??????????????????????????????????????????磬??????????Щ????????ι???????????????????????????????????

??????????????????????????Щ???????????ζ????С????????Щ???????

?????????????У??????????????????????????磬????????в?????????飬????????????????????????Ч??

?????????????????????磬??????????????is_test???????????????????????????????????????????????????????????????????????????Щ??????????????????????????????????Щδ????????????????????????????????????????????????????????


?????????????

??Щ???????????????????????????????????????????????????????????????????????????????????????????????Щ??????????????????????????????????????????????????????????????????????????????е?????????

??????У???????д???dbSetUp???????????????

public void dbSetUp()
{
// Put the database in a known state:
// (stored procedures would probably be better here)
helper.exec("DELETE FROM SomeSideTable");
helper.exec("DELETE FROM User");
// Insert some commonly-used test cases:
...
}

?κ???????????????????κ???????????dbSetUp??????????????????????????????????????????????????????????????????????μ????

???е?????????????????????????????н??????????б????????????????Э????

??????????????????????

????????????????????

?????β??????????????????????????????????????????????????С?????????????????????????????????????????????

???????????????????????????????????????????????????????????????????????????????С???????????????????????????????????????????????????????£?

1????????????????????????????????????в????в???????????????????

2???????????????????????д????????

3????????????????????????????????????????????????????????????ó??????????????????????????????У??????????????????????е?????????????????????????????????????????????????????????ó??????д?????????????????????С?

4??????????????????????????????????????????????в???????????????б????????????????????????????????????????????????????????????????ж????????洢???????????????????????е??????

???ж????????????£????????????????????????????????????????и????????洢???????????????????????????????????????????????????????????????????Щ????????????????????????????????????????????????????????????飬???????????????????????CVS????????????????????????????????

???????????http://hgh666.cn??????????http://hgh666.cn
??????????AutoRunner??http://hgh666.cn/autorunner/??
??????????TestCenter??http://hgh666.cn/testcenter/??
?????????TAR       ??http://hgh666.cn/tar??