?????????????????????????????Щ???????е?????????java?????д????????????Щ????????????????????????á???????????????????????????????

?????????????????????????SQL??????Щ?洢??????????????ó??????????????м?????????????в????
??????????????????????????????????


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


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

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

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


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


?????????????????????????????????????????????????????????????????????????????????e???????????????????????

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

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???????????

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


??????????


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

???????????????????????????Щ????????????????????????????????????“testuser01@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:
...
}