Comments (4)
Hi Matt,
I think I might be able to help you here.
I have a Ruby library that is somewhat similar to artifice, albeit more self-contained and built on top of Sinatra, called Mimic. I'm pretty happy with it and one of my favourite features is that as well as being configured using it's Ruby DSL (or using the Sinatra API directly), it can be configured remotely or from any process that speaks HTTP. This means you can use it in your Objective-C tests and configure it from the tests too (rather than having say, a set of external fixtures in a Ruby file).
In the name of eating my own dog food, I recently converted the acceptance tests for my Objective C RestClient port, Resty to use Mimic. The Mimic daemon is started up as part of the build process and my stubs are configured directly in the tests, using a thin Objective-C wrapper around the Mimic REST API.
As you can see, I strive very hard for test clarity!
Those tests use OCUnit but you can use this with Kiwi. In fact, the assertEventually macro in the above tests was the basis of the asynchronous testing support that I ported to Kiwi.
I've since extracted the Objective-C wrapper for Mimic from LRResty and moved it into the Mimic repository. You may want to check out the Resty project to see how my project and the tests are configured. If you have any questions, please ask.
One caveat: I haven't found a way of getting these tests to run successfully in Xcode 4, using the "Test" option, due to the way that it runs. In Xcode 3, I rely on Run Script build phases to start and stop the Mimic daemon, but because Xcode 4 doesn't run the tests as part of the build process this doesn't work. I've tried to accomplish something similar using pre/post test actions but unfortunately these are woefully inadequate due to various bugs.
Bonus tip: I find Charles Debugging Proxy as massive help when working with web services and you can use it with Mimic too; the Objective-C wrapper can be proxied through Charles so you can see exactly what is happening, both in terms of stub configuration and actual HTTP requests (Mimic can even be configured to return some helpful debugging data in the response headers).
Do let me know if you have any questions.
from kiwi.
I've copied this answer to your StackOverflow question for the benefit of the SO community.
from kiwi.
Oh, wow. This sounds great! Thank you!
On Fri, Jun 3, 2011 at 2:37 PM, lukeredpath <
[email protected]>wrote:
I've copied this answer to your StackOverflow question for the benefit of
the SO community.Reply to this email directly or view it on GitHub:
https://github.com/allending/Kiwi/issues/22#comment_1298609
from kiwi.
BTW if you didn't notice already, lukeredpath is an awesome contributor.
from kiwi.
Related Issues (20)
- Use predicate in stubbed properties when filtering mock objects in array HOT 1
- Macros autocomplete not working HOT 1
- when the second run testCase, not real run and success directly
- Swift 3 cocoapods run failed HOT 3
- Tests are executed in a wrong order under certain conditions (Xcode 8.3, single suite)
- Please help me :D Invalid pointer dequeued from free list
- Using a sharedExample in another HOT 2
- kiwi report error that' SenTestingKit/SenTestingKit.h file not found' HOT 2
- build synthetic seismogram in a specific station HOT 1
- Stop tests execution if one test is failed HOT 1
- Xcode 9: `any` Macro Conflicts with Generated Swift Header Macro `SWIFT_MODULE_NAMESPACE_PUSH` HOT 6
- Preparing next release HOT 8
- theValue(BOOL) not working with should receive
- XCTest.framework/XCTest' does not contain bitcode HOT 2
- expectFutureValue not working HOT 2
- How to test cadisplaylink
- Oops… the system encountered a problem (#500) - Retrying in X:XXs… HOT 1
- SharedExample with multiple 'it' blocks
- SIGABRT: kiwi crashes at KWProbePoller
- Preparing a new version (3.1.0) - Upgrading to Xcode 11 HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kiwi.