Model Utas
TAEF menyediakan fungsionalitas untuk mengonfigurasi model utas COM untuk lingkungan tempat Anda menguji eksekusi. Secara default, pengujian Terkelola © #) dan Skrip berjalan pada utas STA; untuk Asli, model utas tidak dikonfigurasi sebelumnya.
Properti metadata "ThreadingModel" digunakan untuk meminta model utas. Nilai yang didukung untuk properti ini adalah:
Nilai Properti | Deskripsi |
---|---|
STA | Single-Threaded Apartment (CoInitializeEx dipanggil dengan bendera COINIT_APARTMENTTHREADED). |
MTA | Apartemen Multithreaded (CoInitializeEx dipanggil dengan bendera COINIT_MULTITHREADED). |
Tidak ada | Model utas tidak ditentukan. |
Mengonfigurasi model utas
Contoh: Untuk meminta model utas MTA dari mark-up C++:
class ThreadModelTests
{
TEST_CLASS(ThreadModelTests);
BEGIN_TEST_METHOD(MTAThreadingModelTest)
TEST_METHOD_PROPERTY(L"ThreadingModel", L"STA")
END_TEST_METHOD()
};
Anda juga dapat meminta properti model utas untuk kelas atau modul. Misalnya,
class ThreadModelTestsWithMTADefault
{
BEGIN_TEST_CLASS(ThreadModelTestsWithMTADefault)
TEST_CLASS_PROPERTY(L"ThreadingModel", L"Mta")
END_TEST_CLASS()
TEST_METHOD(DefaultWithMTASetByClass);
};
Demikian pula, Anda juga dapat meminta model utas untuk pengujian terkelola:
[TestClass]
public class SimpleTests
{
[TestMethod]
[TestProperty("ThreadingModel", "MTA")]
public void Test1()
{
Verify.IsTrue(true);
}
[TestMethod]
[TestProperty("ThreadingModel", "STA")]
public void Test2()
{
Verify.IsTrue(true);
}
[TestMethod]
[TestProperty("ThreadingModel", "{STA; MTA}")]
public void SetsOfMetadataTest()
{
Log.Comment("In CSharpThreadingModelExample.SetsOfMetadataTest");
DisplayAppartmentState();
}
}
Perhatikan pada pengujian terakhir di atas: SetsOfMetadataTest, dimungkinkan juga untuk menggunakan set metadata dan menjalankan pengujian yang sama: pertama dengan model threading STA dan kemudian dengan MTA.