Swift3 rewriting for XCTest APIs For the most part, the automatic heuristics seem to be doing the right things for Xcode’s XCTest. We have identified a few cases where we should perhaps discuss doing a little extra. Almost everything seems like it imports reasonably according to the API guidelines (https://swift.org/documentation/api-design-guidelines/ <https://swift.org/documentation/api-design-guidelines/>). The few cases that we think need tweaking are detailed here.
These are the changes from how the API imports automatically that we are considering. I would love to hear any comments or suggestions. addTest[Run]() There’s a glitch in the importer that is making XCTestSuioteRun’s addTestRun: import as addTest. We’re tracking this as a bug in the importer. In the meantime, I would fix this in Xcode’s XCTest explicitly. Existing imported method XCTestSuiteRun.addTest(testRun: XCTestRun) Suggested new name XCTestSuiteRun.addTestRun(testRun: XCTestRun) Bound(by: vs. (boundBy: Here, the importer just isn't smart enough to detect that the prepositional phrase that really identifies the argument is "boundBy", not "by”. We’re also tracking this as a possible thing to fix in the importer. In the meantime, I would fix this in Xcode’s XCTest explicitly. Existing imported method XCUIElementQuery.elementBound(by index: UInt) -> XCUIElement Suggested new name XCUIElementQuery.element(boundBy index: UInt) -> XCUIElement Query "matching..." This next little family is a bit more subtle. The first two have a noun which just restates the type, so by the guidelines we would remove them. Technically the last one's noun is a role, not a type and so what the importer is doing is correct. But it feels inconsistent if we remove the type names but leave that one alone. To make it a little more consistent, the suggestion is to move identifier inside the parens as a required label so all these related functions have the same "outside the parens" part of their names. Existing imported method XCUIElementQuery.matchingPredicate(predicate: NSPredicate) -> XCUIElementQuery XCUIElementQuery.matchingType(elementType: XCUIElementType, identifier: String?) -> XCUIElementQuery XCUIElementQuery.matchingIdentifier(identifier: String) -> XCUIElementQuery Suggested new name XCUIElementQuery.matching(predicate: NSPredicate) -> XCUIElementQuery XCUIElementQuery.matching(elementType: XCUIElementType, identifier: String?) -> XCUIElementQuery XCUIElementQuery.matching(identifier identifier: String) -> XCUIElementQuery
_______________________________________________ swift-corelibs-dev mailing list swift-corelibs-dev@swift.org https://lists.swift.org/mailman/listinfo/swift-corelibs-dev