Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Panduan ini menggambarkan cara menggunakan sumber data yang ditentukan dalam file app.config untuk pengujian unit. Anda akan mempelajari cara membuat file app.config yang menentukan sumber data yang dapat digunakan oleh kelas DataSourceAttribute. Tugas yang disajikan dalam panduan ini meliputi yang berikut ini:
Membuat file app.config.
Menentukan bagian konfigurasi kustom.
Mendefinisikan string koneksi.
Menentukan sumber data.
Mengakses sumber data menggunakan kelas DataSourceAttribute.
Nota
DataSourceAttribute saat ini hanya didukung pada .NET Framework.
Prasyarat
Untuk menyelesaikan panduan ini, Anda perlu:
Visual Studio Enterprise
Baik Microsoft Access atau Microsoft Excel untuk menyediakan data untuk setidaknya salah satu metode pengujian.
Solusi Visual Studio yang berisi proyek pengujian.
Menambahkan file app.config ke proyek
Jika proyek pengujian Anda sudah memiliki file app.config, buka Tentukan bagian konfigurasi kustom.
Klik kanan proyek pengujian Anda di Solution Explorer, lalu pilih Tambahkan>Item Baru.
Jendela Tambahkan Item Baru terbuka. Jika Anda tidak melihat semua templat item, pilih Perlihatkan Semua Templat, lalu pilih templat item.
Pilih templat File Konfigurasi Aplikasi dan klik Tambahkan.
Tentukan bagian konfigurasi kustom
Periksa file app.config. Ini berisi setidaknya deklarasi XML dan elemen akar.
Untuk menambahkan bagian konfigurasi kustom ke file app.config
Elemen konfigurasi harus menjadi elemen akar dari app.config. Buat elemen configSections di dalam elemen configuration. configSections harus menjadi elemen pertama dalam file app.config.
Dalam elemen configSections, buat elemen bagian .
Di bagian elemen, tambahkan atribut yang disebut
name
dan tetapkan nilaimicrosoft.visualstudio.testtools
. Tambahkan atribut lain yang disebuttype
dan tetapkan nilaiMicrosoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions
.
Elemen di bagian sebaiknya terlihat mirip dengan ini:
<section name="microsoft.visualstudio.testtools" type="Microsoft.VisualStudio.TestTools.UnitTesting.TestConfigurationSection, Microsoft.VisualStudio.TestPlatform.TestFramework.Extensions" />
Nota
Nama rakitan harus cocok dengan versi yang Anda gunakan.
Mendefinisikan string koneksi
String koneksi menentukan informasi khusus penyedia untuk mengakses sumber data. String koneksi yang ditentukan dalam file konfigurasi menyediakan informasi penyedia data yang dapat digunakan kembali di seluruh aplikasi. Di bagian ini, Anda membuat dua string koneksi yang akan digunakan oleh sumber data yang ditentukan di Bagian Konfigurasi Kustom.
Perhatian
String koneksi dapat berisi data sensitif (misalnya, kata sandi). String koneksi disimpan dalam teks biasa di kode sumber dan dalam rakitan yang telah dikompilasi. Batasi akses ke kode sumber dan rakitan untuk melindungi informasi sensitif ini.
Untuk menentukan string koneksi
Setelah elemen configSections, buat elemen connectionStrings.
Dalam connectionStrings, buat dua elemen tambah.
Di pertama tambahkan elemen, buat atribut dan nilai berikut untuk koneksi ke database Microsoft Access:
Atribut | Nilai |
---|---|
name |
"MyJetConn" |
connectionString |
"Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\testdatasource.accdb; Persist Security Info=False;" |
providerName |
"System.Data.OleDb" |
Di kedua, tambahkan elemen, buat atribut dan nilai berikut untuk koneksi ke lembar bentang Microsoft Excel:
Atribut | Nilai |
---|---|
name |
"MyExcelConn" |
connectionString |
"Dsn=Excel Files;dbq=data.xlsx;defaultdir=.\; driverid=790;maxbuffersize=2048;pagetimeout=5" |
providerName |
"System.Data.Odbc" |
Elemen connectionStrings akan terlihat mirip dengan ini:
<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>
Menentukan sumber data
Bagian sumber data berisi empat atribut yang digunakan oleh mesin uji untuk mengambil data dari sumber data.
name
menentukan identitas yang digunakan oleh DataSourceAttribute untuk menentukan sumber data mana yang akan digunakan.connectionString
mengidentifikasi string koneksi yang dibuat di bagian Tentukan String Koneksi sebelumnya.dataTableName
menentukan tabel atau lembar yang menyimpan data untuk digunakan dalam pengujian.dataAccessMethod
menentukan teknik untuk mengakses nilai data di sumber data.
Di bagian ini, Anda akan menentukan dua sumber data untuk digunakan dalam pengujian unit.
Untuk menentukan sumber data
Setelah elemen connectionStrings, buat elemen microsoft.visualstudio.testtools. Bagian ini dibuat di bagian 'Menentukan Bagian Konfigurasi Khusus'.
Dalam elemen microsoft.visualstudio.testtools, buat elemen dataSources.
Dalam elemen dataSources, tambahkan dua elemen .
Di pertama tambahkan elemen, buat atribut dan nilai berikut untuk sumber data Microsoft Access:
Atribut | Nilai |
---|---|
name |
"MyJetDataSource" |
connectionString |
"MyJetConn" |
dataTableName |
"MyDataTable" |
dataAccessMethod |
"Sequential" |
Di kedua menambahkan elemen, buat atribut dan nilai berikut untuk sumber data Microsoft Excel:
Atribut | Nilai |
---|---|
Name |
"MyExcelDataSource" |
connectionString |
"MyExcelConn" |
dataTableName |
"Sheet1$" |
dataAccessMethod |
"Sequential" |
Elemen microsoft.visualstudio.testtools seharusnya terlihat seperti ini:
<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>
File app.config akhir akan terlihat mirip dengan ini:
<?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>
Membuat pengujian unit yang menggunakan sumber data yang ditentukan dalam app.config
Sekarang setelah file app.config ditentukan, Anda akan membuat pengujian unit yang menggunakan data yang terletak di sumber data yang ditentukan dalam file app.config. Di bagian ini, kami akan:
Buat sumber data yang ditemukan dalam file app.config.
Gunakan sumber data dalam dua metode pengujian yang membandingkan nilai di setiap sumber data.
Untuk membuat sumber data Microsoft Access
Buat database Microsoft Access bernama testdatasource.accdb.
Buat tabel dan beri nama
MyDataTable
di testdatasource.accdb.Buat dua bidang di
MyDataTable
bernamaArg1
danArg2
menggunakan jenis dataNumber
.Tambahkan lima entitas ke
MyDataTable
dengan nilai berikut untukArg1
danArg2
, masing-masing: (10.50), (3.2), (6.0), (0,8) dan (12312.1000).Simpan dan tutup database.
Ubah string koneksi untuk menunjuk ke lokasi database. Ubah nilai
Data Source
untuk mencerminkan lokasi database.
Untuk membuat sumber data Microsoft Excel
Buat lembar bentang Microsoft Excel bernama data.xlsx.
Buat lembar bernama
Sheet1
jika belum ada di data.xlsx.Buat dua header kolom dan beri nama
Val1
danVal2
diSheet1
.Tambahkan lima entitas ke
Sheet1
dengan nilai berikut untukVal1
danVal2
, masing-masing: (1,1), (2,2), (3,3), (4,4) dan (5,0).Simpan dan tutup spreadsheet.
Ubah string koneksi untuk menunjuk ke lokasi spreadsheet. Ubah nilai
dbq
untuk mencerminkan lokasi spreadsheet.
Untuk membuat pengujian unit menggunakan sumber data app.config
Tambahkan tes unit ke proyek pengujian.
Ganti konten pengujian unit yang dibuat secara otomatis dengan kode berikut:
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"]); } } }
Periksa atribut DataSource. Perhatikan nama pengaturan dari file app.config.
Bangun solusi Anda dan jalankan pengujian MyTestMethod dan MyTestMethod2.
Penting
Sebarkan item seperti sumber data sehingga dapat diakses oleh pengujian di direktori penyebaran.