我們的團隊的成員正在加緊進行單元測試,並且我們正在努力應用一些術語。我想確定一個特定模式的名稱。我希望有一個已經被其他開發人員所接受,但如果不是,我想提出一個描述性的,並且會讓測試策略更容易討論。你稱之爲用於測試的內部類是什麼?
此模式用於測試抽象方法的相當多,但在對象創建新對象時(對於DI不起作用或不需要的情況)也很方便。基本模式是使用擴展受測試類的內部類來公開受保護的方法。
考慮下面的代碼(這是僞代碼,基於Java,而應該轉化爲大多數語言):
要測試的類:
public class MyClass {
public void send() {
//do something
}
protected MailMessage createNewMailMessage() {
return new MailMessage();
}
}
測試:
public class MyClassTest {
private MyClass myClass = new TestableMyClass();
private MailMessage mockMessage = mock(MailMessage.class);
public void setup() {
((TestableMyClass)myClass).setMailMessage(mockMessage);
}
// Do some tests //
private class TestableMyClass extends MyClass {
private MailMessage mailMessage;
public void setMailMessage(MailMessage mailMessage) {
this.mailMessage = mailMessage;
}
protected MailMessage createNewMailMessage() {
return mailMessage;
}
}
}
那麼,你稱這種模式是什麼? TestableMyClass是一個「模擬」對象,但由於它不是由模擬框架管理的,所以似乎應該有另一個術語來描述這種模式。任何建議或想法?
我所能所有'TestableMyClass'本着存根[1] [1] [這]:HTTP:/ /stackoverflow.com/questions/463707/what-are-the-differences-between-mocks-and-stubs-on-rhino-mocks – hvgotcodes