StackMob 2.2.0

StackMob 2.2.0

测试已测试
Lang语言 Obj-CObjective C
许可证 Apache 2
发布最新发布2014年12月

未认领维护。



StackMob 2.2.0

  • StackMob

StackMob iOS SDK

StackMob 网站

开发者指南

Apple 文档


入门

将 StackMob SDK 添加到您的应用中

配置 StackMob SDK 以使用您的 StackMob 账户

开发

调试


iOS SDK 为开发人员提供了访问两个全局变量的权限,这些变量将允许在集成 Core Data 时启用额外的日志语句。

  • SM_CORE_DATA_DEBUG - 在您的 AppDelegate 的 application:DidFinishLaunchingWithOptions: 方法中,包括以下行以开启来自 SMIncrementalStore 的日志语句:SM_CORE_DATA_DEBUG = YES;。这将提供有关 Core Data 保存和检索期间在后台发生的 StackMob 数据存储调用的信息。默认值为 NO
  • SM_MAX_LOG_LENGTH - 用以控制日志时打印的字符数。默认值为 10,000,这已经足够,因此您几乎无需设置此值。唯一您会看到对象字符串表示被截断的情况是,当您有一个类型为 String 的属性,映射到 StackMob 中类型为 Binary 的字段时,因为您正在发送包含图像等的二进制字符串。截断的对象字符串将包含 <MAX_LOG_LENGTH_REACHED>

测试


为了进行测试,您必须下载完整的源代码:`git clone [email protected]:stackmob/stackmob-ios-sdk.git`。

Kiwi 规范的运行方式与 OCUnit 测试类似。在 Xcode 中,按 ⌘U 将运行当前选中方案的所有测试。

    describe(@"a public method or feature", ^{
        beforeEach(^{
            //set up
            [[someClass stubAndReturn:aResult] aMethod];
        });
        context(@"when some precondition exists", ^{
            beforeEach(^{
                //set the precondition
            });
            it(@"should have a specific behavior", ^{
                //verify the behavior
                [[aThing shouldNot] equal:someOtherThing];
            });
            pending(@"should eventually have another behavior", ^{
                //pending specs will not execute and generate warnings
                [[[anObject should] receive] aMethodWith:anArgument];
                [anObject doStuff];
            });
            context(@"and another condition exists", ^{
                //...
            });
        });
    });

集成测试

单元测试不会向StackMob发出网络请求。该项目包含单独的集成测试目标,以验证与StackMob API的通信。

  1. cp integration\ tests/StackMobCredentials.plist.example integration\ tests/StackMobCredentials.plist
  2. 打开integration\ tests/StackMobCredentials.plist
  3. 设置要使用的StackMob账户的公钥。
  4. (使用StackMob Web控制台)创建一个名为places的模式。添加一个名为location的地理点字段,并将所有模式权限设置为公开
  5. (使用StackMob Web控制台)创建一个名为oauth2test的模式。添加一个名为name的字符串字段,并将所有模式权限设置为允许任何登录用户
  6. 测试“集成测试”方案。

可选:测试自定义代码方法


默认情况下,自定义代码测试是关闭的。这是因为它们需要您上传特定的自定义代码方法以用于您的应用程序。要测试自定义代码,请执行以下操作

  1. 克隆自定义代码示例存储库:$ git clone [email protected]:stackmob/stackmob-customcode-example.git
  2. 从根文件夹导航到/java/src/main/java/com/stackmob/example/
  3. /example文件夹中的内容替换为stackmob-ios-sdk提供的文件。它们可以通过从您本地stackmob-ios-sdk文件夹的根目录导航到/integration tests/CustomCodeFiles找到。这些文件是EntryPointExtender.javaHelloWorld.javaHelloWorldParams.java
  4. 返回您本地stackmob-customcode-example文件夹的根目录,并执行命令$ mvn clean package
  5. 转到您的stackmob.com仪表板,然后点击左侧侧边栏中的管理自定义代码
  6. 上传新代码并选择您的本地stackmob-customcode-example文件夹根目录下位于/java/target/处的.jar文件。它是唯一的.jar文件,而不是.one-jar.jar。您应该从浏览器获得反馈,说明hello_worldhello_world_params方法已成功上传 - 它报告了版本和创建日期。
  7. 一旦上传了自定义代码文件,您就可以开始测试。在Xcode中,导航到文件夹Integration Tests中的文件SMIntegrationTestHelpers.h。您将看到#define TEST_CUSTOM_CODE 0。只需将其更改为1,当您测试“集成测试”方案时,将会运行在SMCusCodeReqIntegrationSpec.m中找到的自定义代码测试。

提交拉取请求

  1. 在Github上分叉存储库并克隆您的分叉。
  2. 创建一个主题分支:git checkout -b make_sdk_better development
  3. 为您的更改编写一些测试。
  4. 确保测试通过。
  5. 提交您的更改。
  6. (如有必要,重复步骤2-4)。
  7. 确保您的主题分支与您在处理时开发分支上添加的任何其他开发人员的更改保持最新:git merge development(如果您更喜欢本地分支,请使用git rebase development)。
  8. 将您的主题分支推送到您的分叉:git push origin make_sdk_better
  9. 在Github上创建一个拉取请求,请求StackMob将您的主题分支合并到StackMob的development分支。