Skip to content

Instantly share code, notes, and snippets.

@SixFiveSoftware
Last active November 27, 2017 16:29
Show Gist options
  • Save SixFiveSoftware/983dffc14a9e0e0dfeeae7b723fe81d6 to your computer and use it in GitHub Desktop.
Save SixFiveSoftware/983dffc14a9e0e0dfeeae7b723fe81d6 to your computer and use it in GitHub Desktop.
Xcode snippet for quickly filling out template quick/nimble test file. Assumes .fromNib() is an extension on UIViewController to instantiate it from nib.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDECodeSnippetCompletionPrefix</key>
<string>vctest</string>
<key>IDECodeSnippetCompletionScopes</key>
<array>
<string>TopLevel</string>
</array>
<key>IDECodeSnippetContents</key>
<string>import UIKit
@testable import POS_Debug
import AcmeCore
import Quick
import Nimble
class &lt;#ViewControllerName#&gt;Tests: QuickSpec {
var sut: &lt;#ViewControllerName#&gt;!
override func spec() {
beforeEach {
self.sut = &lt;#ViewControllerName#&gt;.fromNib()
_ = self.sut.view
}
describe("&lt;#ViewControllerName#&gt;") {
context("outlets") {
it("has connected &lt;#OutletName#&gt;") { expect(self.sut.&lt;#OutletName#&gt;).toNot(beNil()) }
}
context("&lt;#OutletName#&gt; actions list") {
it("contains &lt;#MethodName#&gt; action") {
let actions = self.sut.&lt;#OutletName#&gt;.actions(forTarget: self.sut, forControlEvent: .touchUpInside) ?? []
expect(actions).to(contain("&lt;#MethodName#&gt;:"))
}
}
}
}
}</string>
<key>IDECodeSnippetIdentifier</key>
<string>5B3EA31E-E51F-4939-B09F-24EED4B1CC7F</string>
<key>IDECodeSnippetLanguage</key>
<string>Xcode.SourceCodeLanguage.Swift</string>
<key>IDECodeSnippetSummary</key>
<string>Stubbed test starter template for View Controllers.</string>
<key>IDECodeSnippetTitle</key>
<string>View Controller Spec Template</string>
<key>IDECodeSnippetUserSnippet</key>
<true/>
<key>IDECodeSnippetVersion</key>
<integer>2</integer>
</dict>
</plist>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment