單元測試和驅動測試開發是敏捷軟件開發過程提倡的方式,對于不依賴于外部環境的功能模塊,單元測試并不是很困難的事情。但是,某些和外部應用程序密切關聯的功能,例如發送電子郵件,單元測試就困難的多了。
Dumbster是一個非常簡單的Java SMTP Server,支持完整的SMTP命令,但是它并不是一個真正的郵件服務器,并不會把郵件真正發送出去,而且存儲起來,也便于檢查和單元測試的驗證。我們來看一個用Dumbster來寫郵件發送的單元測試:
java 代碼
public class SimpleSmtpServerTest extends TestCase {
...
public void testSend() {
SimpleSmtpServer server = SimpleSmtpServer.start();
try {
// Submits an email using javamail to the email server listening on port 25
// (method not shown here). Replace this with a call to your app logic.
sendMessage(25, "sender@here.com", "Test", "Test Body", "receiver@there.com");
} catch(Exception e) {
e.printStackTrace();
fail("Unexpected exception: "+e);
}
server.stop();
assertTrue(server.getReceivedEmailSize() == 1);
Iterator emailIter = server.getReceivedEmail();
SmtpMessage email = (SmtpMessage)emailIter.next();
assertTrue(email.getHeaderValue("Subject").equals("Test"));
assertTrue(email.getBody().equals("Test Body"));
}
...
}
是不是很簡單?
文章來源于領測軟件測試網 http://www.kjueaiud.com/