सिल्वरलाइट यूनिट टेस्ट फ्रेमवर्क में एक [असिंक्रोनस] विशेषता (AsynchronousAttribute) है जो परीक्षणों को केवल तब समाप्त करने का कारण बनती है जब EnqueueTestComplete() को कॉल किया जाता है। यह उन परीक्षणों को लिखने का एक आसान तरीका है जो किसी घटना को समाप्त होने से पहले होने की प्रतीक्षा करने की आवश्यकता होती है। अब मैं उन लोगों में से एक पसंदीदा सामान्य उद्देश्य इकाई परीक्षण ढांचा चुनने की कोशिश कर रहा हूं जो सबसे लोकप्रिय विकल्प हैं - वीएसयूटीएफ, एनयूनीट, xUnit.NET, MbUnit और मैं सोच रहा था - आप इन ढांचे का उपयोग करके एसिंक्रोनस परीक्षण कैसे करेंगे?वीएसयूटीएफ, एनयूनीट, xUnit.NET, एमबीयूनीट बनाम एसयूटीएफ में असीमित परीक्षण?
मुझे लगता है मैं Monitor.Wait या ResetEventWaitOne करते हैं और इसे परीक्षा पद्धति के अंत में फोन करेगा कि कुछ कस्टम कोड बाहर बाहर रोल कर सकते हैं, तो एक पल्स करना/सेट जब परीक्षण खत्म हो गया है, लेकिन मैं अगर देख रहा था एक मौजूदा आम/अंतर्निहित समाधान है।
यह एक नमूना है कि यह एसयूटी में कैसे किया जाता है (http://smartypantscoding.com/a-cheat-sheet-for-unit-testing-silverlight-apps-on-windows-phone-7 से)।
[TestClass]
public class AsyncTests : SilverlightTest
{
[Asynchronous]
[TestMethod]
public void AsyncAppendStringTest()
{
var appendStrings = new List<string>() { "hello", "there" };
StringJoiner.AsyncAppendStringsWithDashes(appendStrings, (returnString) =>
{
Assert.IsTrue(string.Compare(returnString, "hello-there") == 0);
EnqueueTestComplete();
});
}
}
यह अभी भी सिल्वरलाइट यूनिट टेस्ट आधारित समाधान है जो मैं देख सकता था। अन्य, गैर-सिल्वरलाइट ढांचे के बारे में क्या? –