ein UIPrintInteractionControllerDelegate
geschrieben haben, möchte ich Einheit testen ihre Papierauswahl Funktionalität in printInteractionController:choosePaper:
Wie ein UIPrintPaper erstellen UIPrintInteractionControllerDelegate zu testen
Seine Erklärung:
optional func printInteractionController(_ printInteractionController: UIPrintInteractionController, choosePaper paperList: [UIPrintPaper]) -> UIPrintPaper
Es ist eine einfache Sache, es zu nennen mit vordefinierten UIPrintPaper-Werten und Überprüfung der Ausgabe. Ich kann jedoch keine UIPrintPaper-Instanzen erstellen. Hier ist, wie UIPrintPaper deklariert ist:
NS_CLASS_AVAILABLE_IOS(4_2)__TVOS_PROHIBITED @interface UIPrintPaper : NSObject
+ (UIPrintPaper *)bestPaperForPageSize:(CGSize)contentSize withPapersFromArray:(NSArray<UIPrintPaper *> *)paperList; // for use by delegate. pass in list
@property(readonly) CGSize paperSize;
@property(readonly) CGRect printableRect;
@end
Die paper und printableRect Eigenschaften sind nur lesbar und es gibt keine initializer sie zu definieren. Wie kann ich UIPrintPaper erstellen, um verschiedene Papiergrößen für meine Tests darzustellen? (A4, US-Letter, 4x6 ...)
Es ist das gleiche Problem, wie erstelle ich UIPrintPaper, um diese Methode aufzurufen? (es ist mit PapersFromArray: ist ein Array von UIPrintPaper) – Clafou
@Clafou Bearbeitete meine Antwort für den Ansatz, den ich denke, Sie nehmen möchten. – JAL
Das ist die Implementierung, die ich hatte, aber es stellt sich heraus, dass bestPaperForPageSize nicht immer das tut, was Sie brauchen. Daher muss ich diese Komponententests schreiben (und wahrscheinlich auch meine eigene Logik implementieren - sobald ich Einheitentests schreiben kann). Meine Frage bezieht sich auf das Erstellen von UIPrintPaper, damit ich es testen kann. – Clafou