Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu kılavuzda, birim testi için bir app.config dosyasında tanımlanan veri kaynağının nasıl kullanılacağı gösterilmektedir. sınıfı tarafından kullanılabilecek bir veri kaynağını tanımlayan bir DataSourceAttribute dosyası oluşturmayı öğreneceksiniz. Bu kılavuzda sunulan görevler şunlardır:
app.config dosyası oluşturma.
Özel yapılandırma bölümü tanımlama.
Bağlantı dizelerini tanımlama.
Veri kaynaklarını tanımlama.
DataSourceAttribute sınıfını kullanarak veri kaynaklarına erişme.
Not
DataSourceAttribute şu anda yalnızca .NET Framework'te desteklenmektedir.
Önkoşullar
Bu kılavuzu tamamlamak için şunlar gerekir:
Visual Studio Enterprise
Test yöntemlerinden en az biri için veri sağlamak amacıyla Microsoft Access veya Microsoft Excel kullanılır.
Test projesi içeren bir Visual Studio çözümü.
Projeye app.config dosyası ekleme
Test projenizde zaten bir app.config dosyası varsa, Özel yapılandırma tanımlama bölümüne gidin.
Çözüm Gezgini'nde test projenize sağ tıklayın ve ardından Ekle>Yeni Öğeseçin.
Yeni Öğe Ekle penceresi açılır. Tüm öğe şablonlarını görmüyorsanız, Tüm Şablonları Gösteröğesini ve ardından öğe şablonunu seçin.
Uygulama Yapılandırma Dosyası şablonunu seçin ve Ekle'ye tıklayın.
Özel yapılandırma bölümü tanımlama
app.config dosyasını inceleyin. En azından XML bildirimini ve kök öğesini içerir.
özel yapılandırma bölümünü app.config dosyasına eklemek için
app.config kök öğesi yapılandırma öğesi olmalıdır. yapılandırma öğesi içinde bir configSections öğesi oluşturun. configSectionsapp.config dosyasındaki ilk öğe olmalıdır.
configSections öğesi içinde, bir bölüm öğesi oluşturun.
bölümünde, öğesinde
nameadlı bir öznitelik ekleyin ve onamicrosoft.visualstudio.testtoolsdeğerini atayın.typeadlı başka bir öznitelik ekleyin veMicrosoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.TestPlatform.TestFramework.Extensionsdeğerini atayın.
bölümü öğesi şuna benzer olmalıdır:
<section name="microsoft.visualstudio.testtools" type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions" />
Not
Derleme adı, kullandığınız sürümle eşleşmelidir.
Bağlantı dizelerini tanımlama
Bağlantı dizeleri, veri kaynaklarına erişmek için sağlayıcıya özgü bilgileri tanımlar. Yapılandırma dosyalarında tanımlanan bağlantı dizeleri, bir uygulama genelinde yeniden kullanılabilir veri sağlayıcısı bilgileri sağlar. Bu bölümde, Özel Yapılandırma Bölümünde tanımlanan veri kaynakları tarafından kullanılacak iki bağlantı dizesi oluşturacaksınız.
Dikkat
Bağlantı dizesi hassas veriler (örneğin, parola) içerebilir. Bağlantı dizesi, kaynak kodda ve derlenmiş derlemede düz metin olarak depolanır. Bu hassas bilgileri korumak için kaynak koduna ve derlemeye erişimi kısıtlayın.
Bağlantı dizelerini tanımlamak için
configSections öğesinden sonra bir connectionStrings öğesi oluşturun.
connectionStrings öğesinde iki öğesi ekleyin.
İlk add öğesinde, bir Microsoft Access veritabanına bağlantı için aşağıdaki öznitelikleri ve değerleri oluşturun:
| Öznitelik | Değer |
|---|---|
name |
"MyJetConn" |
connectionString |
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\testdatasource.accdb; Persist Security Info=False;" |
providerName |
"System.Data.OleDb" |
Microsoft Excel tablosuna bağlantı için ikinci öğesini ekleyin ve aşağıdaki öznitelikleri ve değerleri oluşturun.
| Öznitelik | Değer |
|---|---|
name |
"MyExcelConn" |
connectionString |
"Dsn=Excel Files;dbq=data.xlsx;defaultdir=.\; driverid=790;maxbuffersize=2048;pagetimeout=5" |
providerName |
"System.Data.Odbc" |
connectionStrings öğesi şuna benzer görünmelidir:
<connectionStrings>
<add name="MyJetConn" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\testdatasource.accdb; Persist Security Info=False;" providerName="System.Data.OleDb" />
<add name="MyExcelConn" connectionString="Dsn=Excel Files;dbq=data.xlsx;defaultdir=.\; driverid=790;maxbuffersize=2048;pagetimeout=5" providerName="System.Data.Odbc" />
</connectionStrings>
Veri kaynaklarını tanımlama
Veri kaynakları bölümü, test altyapısı tarafından bir veri kaynağından veri almak için kullanılan dört öznitelik içerir.
name, hangi veri kaynağının kullanılacağını belirtmek için DataSourceAttribute tarafından kullanılan kimliği tanımlar.connectionString, önceki Bağlantı Dizelerini Tanımla bölümünde oluşturulan bağlantı dizesini tanımlar.dataTableName, testte kullanılacak verileri tutan tabloyu veya sayfayı tanımlar.dataAccessMethod, veri kaynağındaki veri değerlerine erişme tekniğini tanımlar.
Bu bölümde, birim testinde kullanılacak iki veri kaynağı tanımlayacaksınız.
Veri kaynaklarını tanımlamak için
connectionStrings öğesinden sonra bir microsoft.visualstudio.testtools öğesi oluşturun. Bu bölüm Özel Yapılandırma Tanımlama Bölümünde oluşturulmuştur.
microsoft.visualstudio.testtools öğesinde bir dataSources öğesi oluşturun.
dataSources öğesinde iki öğesi ekleyin.
İlk öğesi ekleyin, bir Microsoft Access veri kaynağı için aşağıdaki öznitelikleri ve değerleri oluşturun:
| Öznitelik | Değer |
|---|---|
name |
"MyJetDataSource" |
connectionString |
"MyJetConn" |
dataTableName |
"MyDataTable" |
dataAccessMethod |
"Sequential" |
İkinci öğesine öğesini ekleyin ve bir Microsoft Excel veri kaynağı için aşağıdaki nitelikleri ve değerleri oluşturun:
| Öznitelik | Değer |
|---|---|
Name |
"MyExcelDataSource" |
connectionString |
"MyExcelConn" |
dataTableName |
"Sheet1$" |
dataAccessMethod |
"Sequential" |
microsoft.visualstudio.testtools öğesi şuna benzer görünmelidir:
<microsoft.visualstudio.testtools>
<dataSources>
<add name="MyJetDataSource" connectionString="MyJetConn" dataTableName="MyDataTable" dataAccessMethod="Sequential"/>
<add name="MyExcelDataSource" connectionString="MyExcelConn" dataTableName="Sheet1$" dataAccessMethod="Sequential"/>
</dataSources>
</microsoft.visualstudio.testtools>
Son app.config dosyası şuna benzer olmalıdır:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="microsoft.visualstudio.testtools" type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions" />
</configSections>
<connectionStrings>
<add name="MyJetConn" connectionString="Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\testdatasource.accdb; Persist Security Info=False;" providerName="System.Data.OleDb" />
<add name="MyExcelConn" connectionString="Dsn=Excel Files;dbq=data.xlsx;defaultdir=.\; driverid=790;maxbuffersize=2048;pagetimeout=5" providerName="System.Data.Odbc" />
</connectionStrings>
<microsoft.visualstudio.testtools>
<dataSources>
<add name="MyJetDataSource" connectionString="MyJetConn" dataTableName="MyDataTable" dataAccessMethod="Sequential"/>
<add name="MyExcelDataSource" connectionString="MyExcelConn" dataTableName="Sheet1$" dataAccessMethod="Sequential"/>
</dataSources>
</microsoft.visualstudio.testtools>
</configuration>
app.config'de tanımlanan veri kaynaklarını kullanan bir birim testi oluşturma
Artık bir app.config dosyası tanımlandığına göre, app.config dosyasında tanımlanan veri kaynaklarında bulunan verileri kullanan bir birim testi oluşturacaksınız. Bu bölümde şunları yapacağız:
app.config dosyasında bulunan veri kaynaklarını oluşturun.
Her veri kaynağındaki değerleri karşılaştıran iki test yönteminde veri kaynaklarını kullanın.
Microsoft Access veri kaynağı oluşturmak için
testdatasource.accdbadlı bir Microsoft Access veritabanı oluşturun.
bir tablo oluşturun ve
MyDataTableiçinde olarak adlandırabilirsiniz.MyDataTableveri türünü kullanarakArg1Arg2adlı veNumberadlı iki alan oluşturun.MyDataTable'ye,Arg1veArg2için sırasıyla şu değerlerle beş varlık ekleyin: (10,50), (3,2), (6,0), (0,8) ve (12312,1000).Veritabanını kaydedin ve kapatın.
Bağlantı dizesini veritabanının konumuna işaret eden şekilde değiştirin.
Data Sourcedeğerini veritabanının konumunu yansıtacak şekilde değiştirin.
Microsoft Excel veri kaynağı oluşturmak için
data.xlsxadlı bir Microsoft Excel elektronik tablosu oluşturun.
Eğer
Sheet1içinde adlı bir sayfa zaten yoksa, bir sayfa oluşturun.İki sütun üst bilgisi oluşturun ve bunları
Val1veVal2'deSheet1olarak adlandırnın.Sheet1'a,Val1veVal2için sırasıyla aşağıdaki değerlerle beş varlık ekleyin: (1,1), (2,2), (3,3), (4,4) ve (5,0).Elektronik tabloyu kaydedin ve kapatın.
Bağlantı dizesini elektronik tablonun konumunu işaret eden şekilde değiştirin.
dbqdeğerini elektronik tablonun konumunu yansıtacak şekilde değiştirin.
app.config veri kaynaklarını kullanarak birim testi oluşturmak için
Test projesine birim testi ekleyin.
Birim testinin otomatik olarak oluşturulan içeriğini aşağıdaki kodla değiştirin:
using System; using Microsoft.VisualStudio.TestTools.UnitTesting; namespace TestProject1 { [TestClass] public class UnitTest1 { private TestContext context; public TestContext TestContext { get { return context; } set { context = value; } } [TestMethod()] [DeploymentItem("MyTestProject\\testdatasource.accdb")] [DataSource("MyJetDataSource")] public void MyTestMethod() { int a = Int32.Parse(context.DataRow["Arg1"].ToString()); int b = Int32.Parse(context.DataRow["Arg2"].ToString()); Assert.AreNotEqual(a, b, "A value was equal."); } [TestMethod()] [DeploymentItem("MyTestProject\\data.xlsx")] [DataSource("MyExcelDataSource")] public void MyTestMethod2() { Assert.AreEqual(context.DataRow["Val1"], context.DataRow["Val2"]); } } }DataSource özniteliklerini inceleyin. app.config dosyasındaki ayar adlara dikkat edin.
Çözümünüzü derleyin ve MyTestMethod ve MyTestMethod2 testlerini çalıştırın.
Önemli
Dağıtım dizinindeki test için erişilebilir olmaları için veri kaynakları gibi öğeleri dağıtın.