أين أضع اختبارات Xunit الخاصة بي لتجميع F#؟
-
25-09-2019 - |
سؤال
أنا أعمل على أول مجموعة "حقيقية" ، وأحاول القيام بالأشياء بشكل صحيح.
لقد تمكنت من الحصول على عمل Xunit أيضًا ، ولكن في الوقت الحالي ، توجد وحدة الاختبار داخل المجموعة نفسها. هذا يزعجني قليلاً ، لأنه يعني أنني سأقوم بشحن مجموعة حيث ما يقرب من نصف الكود (و 80 ٪ من API) هو طرق الاختبار.
ما هي الطريقة الصحيحة للقيام بذلك؟ إذا قمت بإجراء الاختبارات في مجموعة أخرى ، فأعتقد أن هذا يعني أنني يجب أن أعرض الأجزاء الداخلية التي أفضل الحفاظ عليها الخاصة.
أعلم أنه في C# هناك آلية صديق للاختبارات (إذا كانت هذه هي المصطلحات الصحيحة) ، هل هناك ما يعادلها في F#؟
بدلاً من ذلك ، هل يمكن لأي شخص أن يوجهني إلى مشروع مثال حيث يتم ذلك "بشكل صحيح"؟
المحلول
يمكنك استخدام internalsvisibleto-attribute لفضح الأجزاء الداخلية لبعض التجمعات الأخرى.
تعديل
إذا تم توقيع التجميع الخاص بك ، فستحتاج أيضًا إلى توقيع مجموعة الأصدقاء ، وتزويد المفتاح العام في سمة InternalsVisibleto:
[<assembly: InternalsVisibleTo("ProcessorTests, PublicKey=0024000004800...)")>]