<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Kommentarer till Cygni</title>
	<atom:link href="http://cygni.se/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://cygni.se</link>
	<description>expertis inom agil systemutveckling på moderna plattformar</description>
	<lastBuildDate>Thu, 15 Dec 2011 09:25:18 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>Kommentarer till Eclipse Tips och Tricks av Best of Eclipse &#8211; Godbitar, kortkommandon mm &#124; Cygni</title>
		<link>http://cygni.se/2007/11/27/eclipse-tips-och-tricks/#comment-285</link>
		<dc:creator>Best of Eclipse &#8211; Godbitar, kortkommandon mm &#124; Cygni</dc:creator>
		<pubDate>Thu, 15 Dec 2011 09:25:18 +0000</pubDate>
		<guid isPermaLink="false">http://stacktrace.se/2007/11/27/eclipse-tips-och-tricks/#comment-285</guid>
		<description>[...] inlägg om kortkommandon och handgrepp är alltid högaktuellt. Inlägget visar bland annat på smarta kommandon för navigering och [...]</description>
		<content:encoded><![CDATA[<p>[...] inlägg om kortkommandon och handgrepp är alltid högaktuellt. Inlägget visar bland annat på smarta kommandon för navigering och [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentarer till Spring Transactions av Mattias Avelin</title>
		<link>http://cygni.se/2008/11/28/spring-transactions/#comment-284</link>
		<dc:creator>Mattias Avelin</dc:creator>
		<pubDate>Thu, 01 Dec 2011 05:18:00 +0000</pubDate>
		<guid isPermaLink="false">http://cygni.wordpress.com/?p=383#comment-284</guid>
		<description>Tack för en riktigt bra artikel om Spring tx.</description>
		<content:encoded><![CDATA[<p>Tack för en riktigt bra artikel om Spring tx.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentarer till WebSockets av Roger F. Gay</title>
		<link>http://cygni.se/2011/04/20/websockets/#comment-283</link>
		<dc:creator>Roger F. Gay</dc:creator>
		<pubDate>Wed, 16 Nov 2011 17:19:35 +0000</pubDate>
		<guid isPermaLink="false">http://stacktrace.se/?p=999#comment-283</guid>
		<description>Stockholm area based project: High Level Logic ... websockets: http://highlevellogic.blogspot.com/2011/09/websocket-server-demonstration_26.html</description>
		<content:encoded><![CDATA[<p>Stockholm area based project: High Level Logic &#8230; websockets: <a href="http://highlevellogic.blogspot.com/2011/09/websocket-server-demonstration_26.html" rel="nofollow">http://highlevellogic.blogspot.com/2011/09/websocket-server-demonstration_26.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentarer till Logback 1.0 av Tommy Wassgren</title>
		<link>http://cygni.se/2011/11/03/logback-1-0/#comment-282</link>
		<dc:creator>Tommy Wassgren</dc:creator>
		<pubDate>Fri, 04 Nov 2011 08:42:04 +0000</pubDate>
		<guid isPermaLink="false">http://cygni.se/?p=3714#comment-282</guid>
		<description>När en stacktrace skrivs till loggen inkluderas vilken jar som klassen ligger i. Det verkar trevligt... Exempel:

14:28:48.835 [btpool0-7] INFO  c.q.l.demo.prime.PrimeAction - 99 is not a valid value
java.lang.Exception: 99 is invalid
  at ch.qos.logback.demo.prime.PrimeAction.execute(PrimeAction.java:28) [classes/:na]
  at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431) [struts-1.2.9.jar:1.2.9]
  at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236) [struts-1.2.9.jar:1.2.9]
  at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) [struts-1.2.9.jar:1.2.9]
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) [servlet-api-2.5-6.1.12.jar:6.1.12]
  at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) [jetty-6.1.12.jar:6.1.12]
  at ch.qos.logback.demo.UserServletFilter.doFilter(UserServletFilter.java:44) [classes/:na]
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1115) [jetty-6.1.12.jar:6.1.12]
  at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:361) [jetty-6.1.12.jar:6.1.12]
  at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) [jetty-6.1.12.jar:6.1.12]
  at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) [jetty-6.1.12.jar:6.1.12]</description>
		<content:encoded><![CDATA[<p>När en stacktrace skrivs till loggen inkluderas vilken jar som klassen ligger i. Det verkar trevligt&#8230; Exempel:</p>
<p>14:28:48.835 [btpool0-7] INFO  c.q.l.demo.prime.PrimeAction &#8211; 99 is not a valid value<br />
java.lang.Exception: 99 is invalid<br />
  at ch.qos.logback.demo.prime.PrimeAction.execute(PrimeAction.java:28) [classes/:na]<br />
  at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431) [struts-1.2.9.jar:1.2.9]<br />
  at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236) [struts-1.2.9.jar:1.2.9]<br />
  at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) [struts-1.2.9.jar:1.2.9]<br />
  at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) [servlet-api-2.5-6.1.12.jar:6.1.12]<br />
  at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) [jetty-6.1.12.jar:6.1.12]<br />
  at ch.qos.logback.demo.UserServletFilter.doFilter(UserServletFilter.java:44) [classes/:na]<br />
  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1115) [jetty-6.1.12.jar:6.1.12]<br />
  at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:361) [jetty-6.1.12.jar:6.1.12]<br />
  at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) [jetty-6.1.12.jar:6.1.12]<br />
  at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) [jetty-6.1.12.jar:6.1.12]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentarer till Distribuerade tjänster via Spring av Spring från början &#8211; introduktion &#124; Cygni</title>
		<link>http://cygni.se/2008/09/29/distribuerade-tjanster-via-spring/#comment-281</link>
		<dc:creator>Spring från början &#8211; introduktion &#124; Cygni</dc:creator>
		<pubDate>Mon, 31 Oct 2011 10:52:15 +0000</pubDate>
		<guid isPermaLink="false">http://cygni.wordpress.com/?p=310#comment-281</guid>
		<description>[...] Distribuerade tjänster via Spring [...]</description>
		<content:encoded><![CDATA[<p>[...] Distribuerade tjänster via Spring [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentarer till Testning med mockobject av Fredrik Tyboni</title>
		<link>http://cygni.se/2011/10/25/testning-med-mockobject/#comment-280</link>
		<dc:creator>Fredrik Tyboni</dc:creator>
		<pubDate>Mon, 31 Oct 2011 09:57:28 +0000</pubDate>
		<guid isPermaLink="false">http://cygni.se/?p=3488#comment-280</guid>
		<description>Hej Fredrik, 

Tack för din kommentar! 

Jag svarar på dina punkter i samma form för enkelhets skull.

1) Länken är fixad - tack! :-)

2) Felmeddelanden spelar in, men känns inte som något avgörande. Alla ramverken ger dig den information som du behöver, så det handlar bara om att lära sig läsa den (och det behöver du med alla). I vissa fall tycker jag att EasyMock ger tydligare information än Mockito, så det beror nog på situationen.

När det gäller mina kodexempel så går jag inte in något direkt på olika assertions, så att jag valt att använda javas inbyggda assert är bara för att göra exemplen tydliga. EasyMock går ju också att använda med Hamcrest, så det ser jag inte som ett stort problem. 

3) Jag tror nog att de flesta (om inte alla) använder static imports för EasyMock och Mockito, men jag har valt att inte göra det i kodexemplen för att göra det tydligare var metoderna som används är deklarerade (det skulle ju kunna vara något egenhackat annars). Av exemplen går det ju att se att det är statiska metoder som anropas och då kan du välja hur du vill hantera det i din egen kod.

Även i praktikten tycker jag faktiskt att det är ganska liten skillnad på ramverken, jag har använt alla tre och tycker att de ger olika bra felmeddelanden i olika lägen. Tröskeln är nog att lära sig mocktestning som koncept, snarare än det specifika API:t.</description>
		<content:encoded><![CDATA[<p>Hej Fredrik, </p>
<p>Tack för din kommentar! </p>
<p>Jag svarar på dina punkter i samma form för enkelhets skull.</p>
<p>1) Länken är fixad &#8211; tack! :-)</p>
<p>2) Felmeddelanden spelar in, men känns inte som något avgörande. Alla ramverken ger dig den information som du behöver, så det handlar bara om att lära sig läsa den (och det behöver du med alla). I vissa fall tycker jag att EasyMock ger tydligare information än Mockito, så det beror nog på situationen.</p>
<p>När det gäller mina kodexempel så går jag inte in något direkt på olika assertions, så att jag valt att använda javas inbyggda assert är bara för att göra exemplen tydliga. EasyMock går ju också att använda med Hamcrest, så det ser jag inte som ett stort problem. </p>
<p>3) Jag tror nog att de flesta (om inte alla) använder static imports för EasyMock och Mockito, men jag har valt att inte göra det i kodexemplen för att göra det tydligare var metoderna som används är deklarerade (det skulle ju kunna vara något egenhackat annars). Av exemplen går det ju att se att det är statiska metoder som anropas och då kan du välja hur du vill hantera det i din egen kod.</p>
<p>Även i praktikten tycker jag faktiskt att det är ganska liten skillnad på ramverken, jag har använt alla tre och tycker att de ger olika bra felmeddelanden i olika lägen. Tröskeln är nog att lära sig mocktestning som koncept, snarare än det specifika API:t.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentarer till Testning med mockobject av Fredrik Wendt</title>
		<link>http://cygni.se/2011/10/25/testning-med-mockobject/#comment-279</link>
		<dc:creator>Fredrik Wendt</dc:creator>
		<pubDate>Sun, 30 Oct 2011 14:27:33 +0000</pubDate>
		<guid isPermaLink="false">http://cygni.se/?p=3488#comment-279</guid>
		<description>Hej!

1) Länken i slutet av blogginlägget verkar inte vara avslutat - klickar man i formuläret här så kommer man till mockobjects.com :)

2) Jag skulle säga att du inte tagit upp en minst lika viktig aspekt, nämligen felmeddelandena man får när något inte blir som tänkt - antingen det är felprogrammerat eller om koden under test beter sig annorlunda än avsett. Där tycker jag det är mycket stor skillnad mellan t ex EasyMock och Mockito. Det kan göra stor skillnad vid felsökning.

En liknande skillnad i just tydlighet i felmeddelande är möjligen att använda Hamcrest:
assertThat(actualPacket, isEqualTo(expectedPacket));
istället för 
assert expectedPacket == actualPacket;
men det tycker jag är än mer en smaksak.

3) En annan ny feature i Java 5 är ju static imports vilket jag tycker gör kodan ovan mycket mer läslig (dvs ta bort &quot;Mockito.&quot; och &quot;EasyMock&quot;, något man inte kommer från med mockery-objektet).

Rent funktionellt så håller jag helt med - det är mycket liten skillnad. I praktiken drar jag inte samma slutsats utan rekomenderar Mockito eftersom tröskeln har varit lägre, dokumentationen enklare och felmeddelanden mycket tydligare och förklarande.</description>
		<content:encoded><![CDATA[<p>Hej!</p>
<p>1) Länken i slutet av blogginlägget verkar inte vara avslutat &#8211; klickar man i formuläret här så kommer man till mockobjects.com :)</p>
<p>2) Jag skulle säga att du inte tagit upp en minst lika viktig aspekt, nämligen felmeddelandena man får när något inte blir som tänkt &#8211; antingen det är felprogrammerat eller om koden under test beter sig annorlunda än avsett. Där tycker jag det är mycket stor skillnad mellan t ex EasyMock och Mockito. Det kan göra stor skillnad vid felsökning.</p>
<p>En liknande skillnad i just tydlighet i felmeddelande är möjligen att använda Hamcrest:<br />
assertThat(actualPacket, isEqualTo(expectedPacket));<br />
istället för<br />
assert expectedPacket == actualPacket;<br />
men det tycker jag är än mer en smaksak.</p>
<p>3) En annan ny feature i Java 5 är ju static imports vilket jag tycker gör kodan ovan mycket mer läslig (dvs ta bort &#8221;Mockito.&#8221; och &#8221;EasyMock&#8221;, något man inte kommer från med mockery-objektet).</p>
<p>Rent funktionellt så håller jag helt med &#8211; det är mycket liten skillnad. I praktiken drar jag inte samma slutsats utan rekomenderar Mockito eftersom tröskeln har varit lägre, dokumentationen enklare och felmeddelanden mycket tydligare och förklarande.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentarer till Spring som DI-ramverk av Sidar</title>
		<link>http://cygni.se/2008/06/09/spring-som-di-ramverk-sfb/#comment-278</link>
		<dc:creator>Sidar</dc:creator>
		<pubDate>Sun, 16 Oct 2011 13:36:04 +0000</pubDate>
		<guid isPermaLink="false">http://cygni.wordpress.com/?p=210#comment-278</guid>
		<description>Den bästa tutorial utan tvekan jag någonsin har sett på ämnet. Tack</description>
		<content:encoded><![CDATA[<p>Den bästa tutorial utan tvekan jag någonsin har sett på ämnet. Tack</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentarer till Fem grymma jQuery-plugins av izepax</title>
		<link>http://cygni.se/2011/02/03/fem-grymma-jquery-plugins/#comment-276</link>
		<dc:creator>izepax</dc:creator>
		<pubDate>Sat, 17 Sep 2011 23:57:34 +0000</pubDate>
		<guid isPermaLink="false">http://stacktrace.se/?p=708#comment-276</guid>
		<description>Blev helt fäst vid Tag It. Något som kommer användas flitigt av mig.</description>
		<content:encoded><![CDATA[<p>Blev helt fäst vid Tag It. Något som kommer användas flitigt av mig.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Kommentarer till Generera diagram via Dot/Graphviz av Jens Larsson</title>
		<link>http://cygni.se/2011/07/25/generera-diagram-via-dotgraphviz/#comment-266</link>
		<dc:creator>Jens Larsson</dc:creator>
		<pubDate>Wed, 03 Aug 2011 16:26:00 +0000</pubDate>
		<guid isPermaLink="false">http://cygni.se/?p=3212#comment-266</guid>
		<description>Denna &lt;a href=&quot;http://www.hokstad.com/making-graphviz-output-pretty-with-xsl.html&quot; rel=&quot;nofollow&quot;&gt;XSL&lt;/a&gt; visar hur man kan transformera svg-filer som genererats av graphviz.</description>
		<content:encoded><![CDATA[<p>Denna <a href="http://www.hokstad.com/making-graphviz-output-pretty-with-xsl.html" rel="nofollow">XSL</a> visar hur man kan transformera svg-filer som genererats av graphviz.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

