- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚开始开发一个连接到 this URL 的应用程序并检索给定货币对的汇率。
我需要测试 HTTP 请求,最后学习了 Kiwi 和 Nocilla。但是,我对任何类型的测试都是全新的,并且没有很多关于 Nocilla 的信息可以帮助我开始。
我将所有 NSURLConnectionDataDelegate
和 NSURLConnectionDelegate
方法添加到我的单 View 应用程序的 ViewController
中,并存储从 URL 检索的数据在 @property (strong, nonatomic) NSMutableData *receivedData;
中。当我运行程序时,一切都按预期工作,但我无法通过我写的测试:
SPEC_BEGIN(URLConnectionSpec)
__block URLConnectionAppDelegate *app_delegate;
__block URLConnectionViewController *view_controller;
describe(@"URLConnection", ^{
beforeAll(^{
[[LSNocilla sharedInstance] start];
app_delegate = [[UIApplication sharedApplication] delegate];
[[app_delegate shouldNot] beNil];
view_controller = app_delegate.viewController;
});
afterAll(^{
[[LSNocilla sharedInstance] stop];
});
afterEach(^{
[[LSNocilla sharedInstance] clearStubs];
});
context(@"When testing", ^{
it(@"should do something", ^{
stubRequest(@"GET", @"http://rate-exchange.appspot.com/currency?from=USD&to=EUR&q=1");
[view_controller beginCommunication];
[[expectFutureValue([NSString stringWithUTF8String:[view_controller.receivedData bytes]]) shouldEventuallyBeforeTimingOutAfter(2)] equal:@"{\"to\": \"EUR\", \"rate\": 0.76610740799999999, \"from\": \"USD\", \"v\": 0.76610740799999999}"];
});
});
});
SPEC_END
对于这么长的代码片段,我深表歉意。
测试总是失败并显示此消息
URLConnection_WhenTesting_ShouldDoSomething] : 'URLConnection, When testing, should do something' [FAILED], expected subject to equal "{"to": "EUR", "rate": 0.76610740799999999, "from": "USD", "v": 0.76610740799999999}", got ""
我尝试将时间更改为甚至 10 秒,希望测试完成得太早,但我得到了相同的结果。我不知道为什么 'receivedData' 是空的。
如果有任何帮助,我将不胜感激
最佳答案
请参阅评论中的讨论:Kiwi 测试的整体结构看起来不错,Nocilla stubRequest
函数调用似乎没有产生测试预期的响应。
也许您可以使用 andReturnRawResponse
来设置预期的响应数据。像这样(假设我的 Nocilla 语法正确):
NSData *rawData = ...
stubRequest(...).andReturnRawResponse(rawData);
[view_controller beginCommunication];
[expectFutureValue([view_controller.receivedData bytes])
shouldEventuallyBeforeTimingOutAfter(2)] equal:rawData.bytes];
关于web-services - 使用 Kiwi/Nocilla 测试 HTTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17423089/
我正在尝试熟悉 Kiwi BDD 测试框架。我将它与 Nocilla 结合使用模拟 HTTP 请求。这两个项目看起来都很棒,但我遇到了一些困难。我有以下测试规范: beforeAll(^{ /
我刚开始使用 stub 请求来测试对 iOS 的外部 API 的异步调用。我目前被以下代码困住了,我无法弄清楚什么不起作用。 我想要实现的非常简单的事情是,如果我从网站收到 200 响应,我将 Vie
我刚开始开发一个连接到 this URL 的应用程序并检索给定货币对的汇率。 我需要测试 HTTP 请求,最后学习了 Kiwi 和 Nocilla。但是,我对任何类型的测试都是全新的,并且没有很多关于
我是一名优秀的程序员,十分优秀!