In the previous post I described the concept of inversion of control and how to decouple classes from their dependencies using interfaces. The objective of doing this is to make the business logic more testable, which now brings us to testing. However, before I jump into mocking ArcObjects code, in this post I will discuss the structure of tests, which will give some context to the unit tests I will discuss in the next topic.
boomphisto
you can teach an old maestro a new tune
Friday, July 26, 2013
Writing Testable ArcObjects Applications - Part 3 - Unit Test Structure
Labels:
AAA,
ArcObjects,
Arrange Act Assert,
BDD,
Gherkin,
Inversion of Control,
IoC,
Mock,
Mocking,
TDD,
Test,
Unit Test
Sunday, July 7, 2013
Writing Testable ArcObjects Applications - Part 2 - Inversion Of Control
In my last blog post I introduced the subjects of Inversion of Control (IoC) and Mocking for unit testing, and this week, as promised, I will now delve into more specific detail about applying these concepts to applications written using ArcObjects.
My focus in this article will be designing code using the SOLID principle of Dependency Inversion, and the use of Inversion of Control (IoC) frameworks for wiring applications up at runtime.
My focus in this article will be designing code using the SOLID principle of Dependency Inversion, and the use of Inversion of Control (IoC) frameworks for wiring applications up at runtime.
Labels:
ArcObjects,
Castle Windsor,
Inversion of Control,
IoC,
Mock,
Mocking,
Server Object Extension,
Test,
Unit Test
Sunday, June 30, 2013
Writing Testable ArcObjects Applications - Part 1
Having previously worked in a software product development company for a number of years, and now back working with Esri technology again, I have been a little surprised by how few internet articles there are related to Unit Testing, Mocking, and Inversion of Control for applications built with ArcObjects, so I thought it might be fun to do a multiple article series on writing testable applications using ArcObjects.
Labels:
ArcObjects,
Inversion of Control,
IoC,
Mock,
Mocking,
Test,
Unit Test
Tuesday, March 12, 2013
Green Framing All The Things!
This will appear to be a strange subject to post about considering my other content, but I recently went through a positive thinking reset, and I was surprised and amazed by some of the results, so I thought I would share.
Labels:
Green Frame,
Green Framing,
Positive Thinking,
Respect,
Success,
Values
Thursday, December 13, 2012
Serving-up ArcGIS Map Tiles From Amazon S3
Its been a long time
since my last blog article, having changed jobs late last year and being in
"the zone" getting up to speed with how my new company operates, and responding to new challenges that my new role brings. However I recently had a chance to utilise
Amazon Web Services' S3 service for publishing map tile caches, and since I
wasn't able to find a great depth of information on the subject I figured I
would post about it.
Labels:
Amazon,
ArcGIS Server,
AWS,
Cache,
Esri,
javascript,
Map Tile,
S3,
Tile
Tuesday, October 25, 2011
Serving-up GeoJSON while having a REST on the GeoCouch
Wow, it's been a while. Between having my tonsils removed (which is not pleasant as an adult), to finishing up with my employer of 11 years and starting a new job, things have been rather hectic over the last few months, but I have found time to put together my third post on my GeoJSON adventure that I have been dabbling with for the last 6 months or so.
I set out on this GeoJSON journey to investigate the definition as a spatial format specification, and to see what I could get for free in terms of interoperability, and I have been pleasantly surprised by the number of applications that support the format.
In my first post on Tile5 rendering GeoJSON I was interested mainly on the map rendering side of things and what I needed to do to massage my data into GeoJSON to take advantage of that rendering.
In my second post on Leaflet rendering GeoJSON passed from ExpressJS/NodeJS I delved more into the interoperability of GeoJSON between Leaflet on the client, and the javascript application server serving data from PostGIS, which was able to return query results in GeoJSON format.
In this third post I have taken the next step, storing my GeoJSON data in a NoSql database - CouchDB, and exposing it directly from the database to the client.
I set out on this GeoJSON journey to investigate the definition as a spatial format specification, and to see what I could get for free in terms of interoperability, and I have been pleasantly surprised by the number of applications that support the format.
In my first post on Tile5 rendering GeoJSON I was interested mainly on the map rendering side of things and what I needed to do to massage my data into GeoJSON to take advantage of that rendering.
In my second post on Leaflet rendering GeoJSON passed from ExpressJS/NodeJS I delved more into the interoperability of GeoJSON between Leaflet on the client, and the javascript application server serving data from PostGIS, which was able to return query results in GeoJSON format.
In this third post I have taken the next step, storing my GeoJSON data in a NoSql database - CouchDB, and exposing it directly from the database to the client.
Monday, August 8, 2011
Nought to PostGIS in 6.3 seconds…almost
In a recent post I decided to investigate some technologies that were new to me, such as leaflet, node.js and express, but in addition to these I had never interacted with PostgreSQL/PostGIS before either, so setting up PostGIS was part of my learning exercise. Being a noob when it came to PostgreSQL and PostGIS, and fairly inexperienced in linux generally, I was able to find the information I needed to get going, but I thought I would pool it together in one location so others can see what I had to do to get my spatial database and queries working in PostGIS, for any other new comers to PostGIS to learn from as well.
Labels:
Administration,
Configuration,
Installation,
PostGIS,
PostgreSQL,
Security,
Spatial Index
Subscribe to:
Posts (Atom)