我總是試圖堅持每個測試的一個斷言,但有時候我會遇到麻煩。輸出是另一個輸入的單元測試方法
例如。
假設我編寫了一個加密和解密字符串的加密類。
public class CryptoDummy
{
public string Decrypt(string value)
{
}
public string Encrypt(string value)
{
}
}
我將如何創建我的單元測試,如果解密後的加密輸出依賴?
我的大部分測試(如果不是全部到目前爲止)都是由每個測試的一個方法調用和每個測試的一個斷言組成的。
因此,對於每次測試多次調用並聲明最後一次調用的方法所產生的最終結果是否正確?
public class CryptoDummyTest
{
private static CryptoDummy _cryptoDummy;
// Use ClassInitialize to run code before running the first test in the class
[ClassInitialize]
public static void MyClassInitialize(TestContext testContext)
{
_cryptoDummy = new CryptoDummy();
}
[TestMethod]
public void Encrypt_should_return_ciphered_64string_when_passing_a_plaintext_value()
{
const string PLAINTEXT_VALUE = "[email protected]";
string cipheredString = _cryptoDummy.Encrypt(PLAINTEXT_VALUE);
Assert.IsTrue(cipheredString != PLAINTEXT_VALUE);
}
[TestMethod]
public void Decrypt_should_return_plaintext_when_passing_a_ciphered_value()
{
const string PLAINTEXT_VALUE = "[email protected]";
string cipheredString = _cryptoDummy.Encrypt(PLAINTEXT_VALUE);
string plaintextString = _cryptoDummy.Decrypt(cipheredString);
Assert.IsTrue(plaintextString == PLAINTEXT_VALUE);
}
}
在此先感謝您。
有一篇由Marc Clifton撰寫的文章(我最喜歡的一篇)關於單元測試模式[Here](http://www.codeproject.com/KB/architecture/autp5.aspx) –
謝謝,我已閱讀並且很久以前購買了這本書的單元測試藝術。 ;) – LavaSeven