Visual sutdio 2008能夠自動創建單元測試存根。我用它來創建一些基本的單元測試,但我的東西迷惑:C#泛型鑄造
private class bla : BaseStoreItem
{
//
}
/// <summary>
///A test for StoreData
///</summary>
public void StoreDataTestHelper<T>() where T : BaseStoreItem
{
FileStore<T> target = new FileStore<T>(); // TODO: Initialize to an appropriate value
BaseStoreItem data = new bla();
target.StoreData(data);
}
[TestMethod()]
public void StoreDataTest()
{
//Assert.Inconclusive("No appropriate type parameter is found to satisfies the type constraint(s) of T. " +
// "Please call StoreDataTestHelper<T>() with appropriate type parameters.");
StoreDataTestHelper<bla>();
}
爲什麼我會收到「錯誤:無法轉換類型‘StorageUnitTests.FileStoreTest.bla’到‘T’」當T鍵入「bla」?
我知道「bla」不是一個好的函數名,但它只是一個例子。
我認爲它應該是Activator.CreateInstance()而不是新的T().. –
2010-03-26 10:01:19
@Akash爲什麼? Activator.CreateInstance使用反射,它很慢。它認爲新的T()更優雅。 – gsharp 2010-03-26 10:11:59
gsharp,對不起,我錯過了,在你的代碼中的new()約束,因爲沒有指定new() – 2010-03-26 10:19:13