Comments (2)
I was able to test using routing using the following strategy (I am using DPLRouteHandler subclasses, not block based routes). Examples are in swift (and might not compile, just giving my general strategy here)
Make route handlers classes configurable for stubbing:
class MyRouter: DPLDeepLinkRouter {
init(oneHandler: OneHandler.Type = OneHandler.self,
twoHandler: TwoHandler.Type = TwoHandler.self
) {
super.init()
self["one"] = forumsRouteHandler
self["two"] = articleRouteHandler
}
}
I created a dummy route handler which always fails when hit
class DummyFailOneHandler: OneHandler {
public override func targetViewController() -> UIViewController! {
fatalError("I should not be called")
return nil
}
override public func viewControllerForPresentingDeepLink(deepLink: DPLDeepLink!) -> UIViewController! {
fatalError("I should not be called")
return nil
}
}
In my test, when I want to confirm that a certain route has been hit, make all other route handlers fail by stubbing them with this failed handler.
router = MyRouter(oneHandler: DummyFailOneHandler.self, twoHandler: TwoHandler.self)
let nsUrl = NSURL(string: "two")
let handled = router?.handleURL(nsUrl, withCompletion: nil)
expect(handled).to(beTrue())
This way if handleUrl returns true I know that the route has been handled by the specific route handler that is supposed to handle it (because all other route handlers automatically fail).
Sorry, code above is not tested for syntax, just a general idea.
from deeplinkkit.
it is a good way to deal with my complex project file
from deeplinkkit.
Related Issues (20)
- Xcode 8.3 beta compilation fails HOT 18
- Support Swift 3.0
- Can I use this library in my Swift 3 project? HOT 1
- Matching regex paths HOT 2
- unrecognized selector configureWithDeepLink: HOT 1
- Regular Expression with (?: exp), can't init DPLRegularExpression HOT 2
- tvOS Support HOT 7
- Stops on first route matches even if it doesn't handle it HOT 2
- [Bug] Parsing URL with hashbang (#!)
- hi
- hi๏ผin swift sample,the bridging -header.h no found the import of DPLproduce etc.
- Wrong route parameters when using alternation in a route handler
- Non-capturing groups not supported
- Handling URL's which has URL inside. HOT 3
- ERROR ITMS-90362 The minimum value is 8.0 for MinimumOSVersion HOT 2
- Is it possible to register route without case-sensitive? HOT 1
- Minimum value for OS support should be 8.0
- query parameter has base64string HOT 1
- Empty query parameter when url containing special character
- Link to documentation does not work
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 deeplinkkit.