Add a new screen

Add Tests
This commit is contained in:
2018-07-10 14:22:28 +08:00
parent 65582f0842
commit b81cebe334
12 changed files with 682 additions and 5 deletions

View File

@@ -13,8 +13,28 @@
4F2F116920EDB07E0074B9A6 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 4F2F116820EDB07E0074B9A6 /* Assets.xcassets */; };
4F2F116C20EDB07E0074B9A6 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 4F2F116A20EDB07E0074B9A6 /* LaunchScreen.storyboard */; };
4F2F117420EF0E5B0074B9A6 /* LoginViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F2F117320EF0E5B0074B9A6 /* LoginViewModel.swift */; };
4F2F117620F053A40074B9A6 /* ChoiceMenuController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F2F117520F053A40074B9A6 /* ChoiceMenuController.swift */; };
4F2F117E20F054E90074B9A6 /* StudyCKTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F2F117D20F054E90074B9A6 /* StudyCKTests.swift */; };
4F2F118C20F054F40074B9A6 /* StudyCKUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4F2F118B20F054F40074B9A6 /* StudyCKUITests.swift */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
4F2F118020F054E90074B9A6 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 4F2F115620EDB07B0074B9A6 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 4F2F115D20EDB07B0074B9A6;
remoteInfo = StudyCK;
};
4F2F118E20F054F40074B9A6 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = 4F2F115620EDB07B0074B9A6 /* Project object */;
proxyType = 1;
remoteGlobalIDString = 4F2F115D20EDB07B0074B9A6;
remoteInfo = StudyCK;
};
/* End PBXContainerItemProxy section */
/* Begin PBXFileReference section */
4F2F115E20EDB07B0074B9A6 /* StudyCK.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = StudyCK.app; sourceTree = BUILT_PRODUCTS_DIR; };
4F2F116120EDB07B0074B9A6 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
@@ -24,6 +44,13 @@
4F2F116B20EDB07E0074B9A6 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = "<group>"; };
4F2F116D20EDB07E0074B9A6 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
4F2F117320EF0E5B0074B9A6 /* LoginViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LoginViewModel.swift; sourceTree = "<group>"; };
4F2F117520F053A40074B9A6 /* ChoiceMenuController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ChoiceMenuController.swift; sourceTree = "<group>"; };
4F2F117B20F054E90074B9A6 /* StudyCKTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = StudyCKTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
4F2F117D20F054E90074B9A6 /* StudyCKTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StudyCKTests.swift; sourceTree = "<group>"; };
4F2F117F20F054E90074B9A6 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
4F2F118920F054F40074B9A6 /* StudyCKUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = StudyCKUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
4F2F118B20F054F40074B9A6 /* StudyCKUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StudyCKUITests.swift; sourceTree = "<group>"; };
4F2F118D20F054F40074B9A6 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -34,6 +61,20 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
4F2F117820F054E90074B9A6 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
4F2F118620F054F40074B9A6 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
@@ -41,6 +82,8 @@
isa = PBXGroup;
children = (
4F2F116020EDB07B0074B9A6 /* StudyCK */,
4F2F117C20F054E90074B9A6 /* StudyCKTests */,
4F2F118A20F054F40074B9A6 /* StudyCKUITests */,
4F2F115F20EDB07B0074B9A6 /* Products */,
);
sourceTree = "<group>";
@@ -49,6 +92,8 @@
isa = PBXGroup;
children = (
4F2F115E20EDB07B0074B9A6 /* StudyCK.app */,
4F2F117B20F054E90074B9A6 /* StudyCKTests.xctest */,
4F2F118920F054F40074B9A6 /* StudyCKUITests.xctest */,
);
name = Products;
sourceTree = "<group>";
@@ -59,6 +104,7 @@
4F2F116120EDB07B0074B9A6 /* AppDelegate.swift */,
4F2F116320EDB07B0074B9A6 /* LoginViewController.swift */,
4F2F117320EF0E5B0074B9A6 /* LoginViewModel.swift */,
4F2F117520F053A40074B9A6 /* ChoiceMenuController.swift */,
4F2F116520EDB07B0074B9A6 /* Main.storyboard */,
4F2F116820EDB07E0074B9A6 /* Assets.xcassets */,
4F2F116A20EDB07E0074B9A6 /* LaunchScreen.storyboard */,
@@ -67,6 +113,24 @@
path = StudyCK;
sourceTree = "<group>";
};
4F2F117C20F054E90074B9A6 /* StudyCKTests */ = {
isa = PBXGroup;
children = (
4F2F117D20F054E90074B9A6 /* StudyCKTests.swift */,
4F2F117F20F054E90074B9A6 /* Info.plist */,
);
path = StudyCKTests;
sourceTree = "<group>";
};
4F2F118A20F054F40074B9A6 /* StudyCKUITests */ = {
isa = PBXGroup;
children = (
4F2F118B20F054F40074B9A6 /* StudyCKUITests.swift */,
4F2F118D20F054F40074B9A6 /* Info.plist */,
);
path = StudyCKUITests;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
@@ -87,6 +151,42 @@
productReference = 4F2F115E20EDB07B0074B9A6 /* StudyCK.app */;
productType = "com.apple.product-type.application";
};
4F2F117A20F054E90074B9A6 /* StudyCKTests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 4F2F118220F054E90074B9A6 /* Build configuration list for PBXNativeTarget "StudyCKTests" */;
buildPhases = (
4F2F117720F054E90074B9A6 /* Sources */,
4F2F117820F054E90074B9A6 /* Frameworks */,
4F2F117920F054E90074B9A6 /* Resources */,
);
buildRules = (
);
dependencies = (
4F2F118120F054E90074B9A6 /* PBXTargetDependency */,
);
name = StudyCKTests;
productName = StudyCKTests;
productReference = 4F2F117B20F054E90074B9A6 /* StudyCKTests.xctest */;
productType = "com.apple.product-type.bundle.unit-test";
};
4F2F118820F054F40074B9A6 /* StudyCKUITests */ = {
isa = PBXNativeTarget;
buildConfigurationList = 4F2F119020F054F40074B9A6 /* Build configuration list for PBXNativeTarget "StudyCKUITests" */;
buildPhases = (
4F2F118520F054F40074B9A6 /* Sources */,
4F2F118620F054F40074B9A6 /* Frameworks */,
4F2F118720F054F40074B9A6 /* Resources */,
);
buildRules = (
);
dependencies = (
4F2F118F20F054F40074B9A6 /* PBXTargetDependency */,
);
name = StudyCKUITests;
productName = StudyCKUITests;
productReference = 4F2F118920F054F40074B9A6 /* StudyCKUITests.xctest */;
productType = "com.apple.product-type.bundle.ui-testing";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
@@ -100,6 +200,14 @@
4F2F115D20EDB07B0074B9A6 = {
CreatedOnToolsVersion = 9.3.1;
};
4F2F117A20F054E90074B9A6 = {
CreatedOnToolsVersion = 9.3.1;
TestTargetID = 4F2F115D20EDB07B0074B9A6;
};
4F2F118820F054F40074B9A6 = {
CreatedOnToolsVersion = 9.3.1;
TestTargetID = 4F2F115D20EDB07B0074B9A6;
};
};
};
buildConfigurationList = 4F2F115920EDB07B0074B9A6 /* Build configuration list for PBXProject "StudyCK" */;
@@ -116,6 +224,8 @@
projectRoot = "";
targets = (
4F2F115D20EDB07B0074B9A6 /* StudyCK */,
4F2F117A20F054E90074B9A6 /* StudyCKTests */,
4F2F118820F054F40074B9A6 /* StudyCKUITests */,
);
};
/* End PBXProject section */
@@ -131,6 +241,20 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
4F2F117920F054E90074B9A6 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
4F2F118720F054F40074B9A6 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@@ -139,13 +263,43 @@
buildActionMask = 2147483647;
files = (
4F2F116420EDB07B0074B9A6 /* LoginViewController.swift in Sources */,
4F2F117620F053A40074B9A6 /* ChoiceMenuController.swift in Sources */,
4F2F116220EDB07B0074B9A6 /* AppDelegate.swift in Sources */,
4F2F117420EF0E5B0074B9A6 /* LoginViewModel.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
4F2F117720F054E90074B9A6 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4F2F117E20F054E90074B9A6 /* StudyCKTests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
4F2F118520F054F40074B9A6 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
4F2F118C20F054F40074B9A6 /* StudyCKUITests.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXTargetDependency section */
4F2F118120F054E90074B9A6 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 4F2F115D20EDB07B0074B9A6 /* StudyCK */;
targetProxy = 4F2F118020F054E90074B9A6 /* PBXContainerItemProxy */;
};
4F2F118F20F054F40074B9A6 /* PBXTargetDependency */ = {
isa = PBXTargetDependency;
target = 4F2F115D20EDB07B0074B9A6 /* StudyCK */;
targetProxy = 4F2F118E20F054F40074B9A6 /* PBXContainerItemProxy */;
};
/* End PBXTargetDependency section */
/* Begin PBXVariantGroup section */
4F2F116520EDB07B0074B9A6 /* Main.storyboard */ = {
isa = PBXVariantGroup;
@@ -316,6 +470,84 @@
};
name = Release;
};
4F2F118320F054E90074B9A6 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = 8NETVC8VTT;
INFOPLIST_FILE = StudyCKTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = "Ian-Chang-Presonal.StudyCKTests";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 4.0;
TARGETED_DEVICE_FAMILY = "1,2";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/StudyCK.app/StudyCK";
};
name = Debug;
};
4F2F118420F054E90074B9A6 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = 8NETVC8VTT;
INFOPLIST_FILE = StudyCKTests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = "Ian-Chang-Presonal.StudyCKTests";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 4.0;
TARGETED_DEVICE_FAMILY = "1,2";
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/StudyCK.app/StudyCK";
};
name = Release;
};
4F2F119120F054F40074B9A6 /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = 8NETVC8VTT;
INFOPLIST_FILE = StudyCKUITests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = "Ian-Chang-Presonal.StudyCKUITests";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 4.0;
TARGETED_DEVICE_FAMILY = "1,2";
TEST_TARGET_NAME = StudyCK;
};
name = Debug;
};
4F2F119220F054F40074B9A6 /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = 8NETVC8VTT;
INFOPLIST_FILE = StudyCKUITests/Info.plist;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
"@loader_path/Frameworks",
);
PRODUCT_BUNDLE_IDENTIFIER = "Ian-Chang-Presonal.StudyCKUITests";
PRODUCT_NAME = "$(TARGET_NAME)";
SWIFT_VERSION = 4.0;
TARGETED_DEVICE_FAMILY = "1,2";
TEST_TARGET_NAME = StudyCK;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
@@ -337,6 +569,24 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
4F2F118220F054E90074B9A6 /* Build configuration list for PBXNativeTarget "StudyCKTests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
4F2F118320F054E90074B9A6 /* Debug */,
4F2F118420F054E90074B9A6 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
4F2F119020F054F40074B9A6 /* Build configuration list for PBXNativeTarget "StudyCKUITests" */ = {
isa = XCConfigurationList;
buildConfigurations = (
4F2F119120F054F40074B9A6 /* Debug */,
4F2F119220F054F40074B9A6 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 4F2F115620EDB07B0074B9A6 /* Project object */;

View File

@@ -0,0 +1,112 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0930"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "4F2F115D20EDB07B0074B9A6"
BuildableName = "StudyCK.app"
BlueprintName = "StudyCK"
ReferencedContainer = "container:StudyCK.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
codeCoverageEnabled = "YES"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "4F2F117A20F054E90074B9A6"
BuildableName = "StudyCKTests.xctest"
BlueprintName = "StudyCKTests"
ReferencedContainer = "container:StudyCK.xcodeproj">
</BuildableReference>
</TestableReference>
<TestableReference
skipped = "NO">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "4F2F118820F054F40074B9A6"
BuildableName = "StudyCKUITests.xctest"
BlueprintName = "StudyCKUITests"
ReferencedContainer = "container:StudyCK.xcodeproj">
</BuildableReference>
</TestableReference>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "4F2F115D20EDB07B0074B9A6"
BuildableName = "StudyCK.app"
BlueprintName = "StudyCK"
ReferencedContainer = "container:StudyCK.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "4F2F115D20EDB07B0074B9A6"
BuildableName = "StudyCK.app"
BlueprintName = "StudyCK"
ReferencedContainer = "container:StudyCK.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "4F2F115D20EDB07B0074B9A6"
BuildableName = "StudyCK.app"
BlueprintName = "StudyCK"
ReferencedContainer = "container:StudyCK.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@@ -10,5 +10,23 @@
<integer>0</integer>
</dict>
</dict>
<key>SuppressBuildableAutocreation</key>
<dict>
<key>4F2F115D20EDB07B0074B9A6</key>
<dict>
<key>primary</key>
<true/>
</dict>
<key>4F2F117A20F054E90074B9A6</key>
<dict>
<key>primary</key>
<true/>
</dict>
<key>4F2F118820F054F40074B9A6</key>
<dict>
<key>primary</key>
<true/>
</dict>
</dict>
</dict>
</plist>