Search Results

Search found 21828 results on 874 pages for 'program x'.

Page 515/874 | < Previous Page | 511 512 513 514 515 516 517 518 519 520 521 522  | Next Page >

  • Use Windows Briefcase from the command line

    - by Daniel
    I have a thumb drive on which I take many of my files with me. I would like to synchronize it with my computer automatically when I connect it. I currently have a script run every time I connect it so that I can do the many things that need to be done when it connects (check for updates to the portable applications, etc.). I want my synchronization utility to: Detect conflicts work correctly when I move files or change the folder structure tell the difference between a file that was deleted on one side and a file that was added on the other work from the command line or at least have a command that will open up a window provide a confirmation screen before doing anything The Windows Briefcase does all of these except the command line. Is there any program that does all of these, or is there a way to synchronize the briefcase from the command line?

    Read the article

  • Problem with SANE and CardScan

    - by TiuTalk
    I have a CardScan 60 II device and installed SANE in my Ubuntu 10.10 laptop. The problem is I can't make scanimage find the device. Quote: $ sudo sane-find-scanner # sane-find-scanner will now attempt to detect your scanner. If the # result is different from what you expected, first make sure your # scanner is powered up and properly connected to your computer. # No SCSI scanners found. If you expected something different, make sure that # you have loaded a kernel SCSI driver for your SCSI adapter. found USB scanner (vendor=0x08f0 [Corex Technologies Corporation], product=0x1000 [Corex CardScan 60], chip=LM9832/3) at libusb:006:002 # Your USB scanner was (probably) detected. It may or may not be supported by # SANE. Try scanimage -L and read the backend's manpage. # Not checking for parallel port scanners. # Most Scanners connected to the parallel port or other proprietary ports # can't be detected by this program. But I can't find the device: $ sudo scanimage -L No scanners were identified. If you were expecting something different, check that the scanner is plugged in, turned on and detected by the sane-find-scanner tool (if appropriate). Please read the documentation which came with this software (README, FAQ, manpages).

    Read the article

  • is it written in flex? the steam client application

    - by Jayapal Chandran
    Hi, I was about to download the PC Game Mafia II ( http://en.wikipedia.org/wiki/Mafia_II ). The site said that do i have steam and i said no ... it asked whether to download and i gave yes. After downloading a 1.5mb exe it executed, dowloaded and installed additional files. After that the program opened. It gave me a feeling that that could have written in flex. if some body could clear this then that could be nice... besides, i went to the mafia ii official site to download the demo and again it asked whether i have steam installed and i said yes. then the firefox application launch dialog box appeared. and again i had this question how to launch an application using firefox... ?? may be i should ask this as a separate question but since it is associated with the above question i asked it here...

    Read the article

  • Where is it permissible to add logging code in a MVC model?

    - by BDotA
    Working on a C# WinForms program that is written in a MVC ( actually Model-View-Presenter) style and I want to add a few lines of code that is responsible for logging some events. Where should I write two or three lines of code that I need? Should I write it in the Presenter section? To get an idea, here is some lines of sample code that already exists in the Save() metohd in Company.MyApplication.Presenter.MyPresenter.cs class: he has written codes lie the following in this part of presenter: private void Save(Helper.SaveStatusEnum status) { if (notification.CheckLocks(orderIdCollection)) { using (new HourglassController()) { controller.FireActiveCellLeaving(); ViewDocumentedValues(); int result = saveController.Save(status); if (result == Helper.SAVE_SUCCESSFUL) { // IS IT OK TO WRITE MY COUPLE LINES OF CODE IN HERE??????????? model.Dirty = false; if ((model.CurrentStatus == Helper.OrderStatusEnum.Complete) || (model.CurrentStatus == Helper.OrderStatusEnum.Corrected)) { controller.EnableDisableSheet(false); } CheckApplicationState(); SheetHelper.ClearUnsavedDataRowImage(view.ActiveSheet); } else { MessageBox.Show("An unexpected error occuring trying to save."); } } } }

    Read the article

  • Unable to record sound from web browser (firefox / chromium ) using recordmydesktop

    - by thamurath
    I have to do some screencast tutorials and i am using recordmydesktop with gtk frontend to do it. I need to record also the sound and here is where i have found the problem. It took me some time, but now I can record the sound from almost every application in my desktop ... almost. I need to capture some sound from a web application using java, but when i load the page nothing appears in the playback tab of pavucontrol. I think this is the problem, because if there is no sound stream i think the recordmydesktop program thinks there is no sound to record ... the funny thing is that I can ear the sound in my speakers! I have tried with Firefox and Chromium with no success. Although I have been able to record youtube videos without problem, so it seems that java is the key here. Any suggestion or idea? P.S.: I am using Ubuntu 11.10 with this configuration. ( if more information is needed please let me know) sight i cannot post images ... so I have an audigy2 sound card using Analog Stereo Output profile. I have also an "Internal Audio" device, but i have it with the "Off" profile. In recordmydesktop-Advanced-Sound: Device = default

    Read the article

  • Is it possible to upgrade PHP to 5.3 on a Centos Kloxo installation?

    - by Malachi
    I have a VPS running Centos with Kloxo on and I was wondering how I would upgrade the PHP to 5.3 - It's currently running 5.2.6. When I try and do a yum update I get the following errors: Resolving Dependencies --> Running transaction check --> Processing Dependency: libpq.so.4 for package: lxphp ---> Package postgresql-libs.i386 0:8.3.7-umask.7 set to be updated --> Finished Dependency Resolution lxphp-5.2.1-400.i386 from installed has depsolving problems --> Missing Dependency: libpq.so.4 is needed by package lxphp-5.2.1-400.i386 (installed) Error: Missing Dependency: libpq.so.4 is needed by package lxphp-5.2.1-400.i386 (installed) You could try using --skip-broken to work around the problem You could try running: package-cleanup --problems package-cleanup --dupes rpm -Va --nofiles --nodigest The program package-cleanup is found in the yum-utils package. Any help would be greatly appreciated.

    Read the article

  • One Does Like To Code: DevoxxUK

    - by Tori Wieldt
    What's happening at Devoxx UK? I'll be talking to Rock Star speakers, Community leaders, authors, JSR leads and more.  This video is a short introduction.   Check out these great sessions: Thursday, June 12Perchance to Stream with Java 8by Paul Sandoz13:40 - 14:30 | Room 1 Making the Internet-of-Things a Reality with Embedded Javaby Simon Ritter11:50 - 12:40 | Room 4 Java SE 8 Lambdas and Streams Labby Simon Ritter17:00 - 20:00 | Room Mezzanine Safety Not Guaranteed: Sun. Misc. Unsafe and the Quest for Safe Alternativesby Paul Sandoz18:45 - 19:45 | Room 3 Join the Java EvolutionHeather VanCuraPatrick Curran19:45 – 20:45 | Room 2  Glassfish is Here to StayDavid DelabasseeAntonio Goncalves19:45 – 20:45 | Room Expo Here is the full line-up of sessions. Devoxx UK includes a Hackergarten, where can devs work an Open Source project of their choice. The Adopt OpenJDK and Adopt a JSR Program folks will be there to help attendees contribute back to Java SE and Java EE itself!   Saturday includes a special Devoxx4Kids event in conjunction with the London Java Community. It's design to teach 10-16 year-olds simple programming concepts, robotics, electronics, and games making. Workshops include LEGO Mindstorms (robotic engineering), Greenfoot (programming), Arduino (electronics), Scratch (games making), Minecraft Modding (game hacking) and NAO (robotic programming). Small fee, you must register. If you can't attend Devoxx UK in person, stay tuned to the YouTube/Java channel. I'll be doing plenty of interviews so you can join the fun from around the world. 

    Read the article

  • How do i get a more recent version of Java on my Mac than is showing up in software update?

    - by Cd Lolly
    I need at least Java 1.6 to run a program that someone else in my lab wrote On the Java website it tells me to update Java via apple's software update function, i've run this a few times but it only got up to Java 1.5.0_24 and it now says no more updates are available for my computer Is there another way to update Java on a Mac? Is my operating system maybe to old for Java 1.6? i'm not sure what i'm running exactly, and i can't find a list of what mac operating systems run what versions of Java because the java site just suggests using Mac's software update.

    Read the article

  • Leveraging .Net 4.0 Framework Tools For Encrypting Web Configuration Sections

    - by Sam Abraham
    I would like to share a few points with regards to encrypting web configuration sections in .Net 4.0. This information is also applicable to .Net 3.5 and 2.0. Two methods can work perfectly for encrypting connection strings in a Web project configuration file:   1-Do It All Yourself! In this approach, helper functions for encrypting/decrypting configuration file content are implemented. Program would explicitly retrieve appropriate content from configuration file then decrypt it appropriately.  Disadvantages of this implementation would be the added overhead for maintaining the encryption/decryption code as well the burden of always ensuring sections are appropriately decrypted before use and encrypted appropriately whenever edited.   2- Leverage the .Net 4.0 Framework (The Way to go!) Fortunately, all needed tools for protecting configuration files are built-in to the .Net 2.0/3.5/4.0 versions with very little setup needed. To encrypt connection strings, one can use the ASP.Net IIS Registration Tool (Aspnet_regiis.exe). Note that a 64-bit version of the tool also exists under the Framework64 folder for 64-bit systems. The command we need to encrypt our web.config file connection strings is simply the following:   Aspnet_regiis –pe “connectionstrings” –app “/sampleApplication” –prov “RsaProtectedConfigurationProvider”   To later decrypt this configuration section:   Aspnet_regiis –pd “connectionstrings” –app “/SampleApplication”   The following is a brief description of the command line options used in the example above. Aspnet_regiis supports many more options which you can read about in the links provided for reference below.   Option Description -pe  Section name to encrypt -pd  Section name to decrypt -app  Web application name -prov  Encryption/Decryption provider   ASP.Net automatically decrypts the content of the Web.Config file at runtime so no programming changes are needed.   Another tool, aspnet_setreg.exe is to be used if certain configuration file sections pertinent to the .Net runtime are to be encrypted. For more information on when and how to use aspnet_setreg, please refer to the references below.   Hope this helps!   Some great references concerning the topic:   http://msdn.microsoft.com/en-us/library/ff650037.aspx http://msdn.microsoft.com/en-us/library/zhhddkxy.aspx http://msdn.microsoft.com/en-us/library/dtkwfdky.aspx http://msdn.microsoft.com/en-us/library/68ze1hb2.aspx

    Read the article

  • How to properly learn ASP.NET MVC

    - by Qmal
    Hello everyone, I have a question to ask and maybe some of you will think it's lame, but I hope someone will get me on the right track. So I've been programming for quite some time now. I started programming when I was about 13 or so on Delphi, but when I was about 17 or so I switched to C# and now I really like to program with it, mostly because it's syntax is very appealing to me, plus managed code is very good. So it all was good and fun but then I had some job openings that I of course took, but the problem with them is that they all are about web programming. And I had to learn PHP and MVC fundamentals. And I somewhat did while building applications using CI and Kohana framework. But I want to build websites using ASP.NET because I like C# much, much more than PHP. TL;DR I want to know ASP.NET MVC but I don't know where to start. What I want to start with is build some simple like CMS. But I don't know where to start. Do I use same logic as PHP? What do I use for DB connections? And also, if I plan to host something that is build with ASP.NET MVC3 on a hosting provider do I need to buy some kind of license?

    Read the article

  • How to properly use windows xp mode

    - by user23950
    I just want to know how could I access the applications installed on xp mode in windows 7. I just installed the application in the default location in xp mode which is c:\program files Do I have to install it on the drive where windows 7 is installed so that I could access it quickly? Because I still have to wait for about 2-4 minutes just to open up a word document(ms office installed in xp mode) that is saved in my desktop in my physical machine. Please help. Details: 2Gb of Ram Pentium Dual Core processor 250GB of HDD

    Read the article

  • Performance of concurrent software on multicore processors

    - by Giorgio
    Recently I have often read that, since the trend is to build processors with multiple cores, it will be increasingly important to have programming languages that support concurrent programming in order to better exploit the parallelism offered by these processors. In this respect, certain programming paradigms or models are considered well-suited for writing robust concurrent software: Functional programming languages, e.g. Haskell, Scala, etc. The actor model: Erlang, but also available for Scala / Java (Akka), C++ (Theron, Casablanca, ...), and other programming languages. My questions: What is the state of the art regarding the development of concurrent applications (e.g. using multi-threading) using the above languages / models? Is this area still being explored or are there well-established practices already? Will it be more complex to program applications with a higher level of concurrency, or is it just a matter of learning new paradigms and practices? How does the performance of highly concurrent software compare to the performance of more traditional software when executed on multiple core processors? For example, has anyone implemented a desktop application using C++ / Theron, or Java / Akka? Was there a boost in performance on a multiple core processor due to higher parallelism?

    Read the article

  • Upgrade TFS 2010 build server to support .net 4.5

    - by JustEngland
    What is needed in the tfs 2010 build agent, to build .net 4.5 projects, in tfs 2008 we had to set the MSBuildPath property, but the configuration seems to be different in 2010. I get the following error message. (614): The imported project "C:\Program Files (x86)\MSBuild\Microsoft\VisualStudio\v11.0\WebApplications\Microsoft.WebApplication.targets" was not found. Confirm that the path in the declaration is correct, and that the file exists on disk. How we handled it in 2008 http://blogs.msdn.com/b/willbar/archive/2009/11/01/building-net-4-0-applications-using-team-build-2008.aspx

    Read the article

  • Is there an application that can do a blue screen effect with a webcam?

    - by Axxmasterr
    Background: This is not the blue screen of death I am speaking of but the process called "Blue Screening" that takes and removes a particular colored background from an image so that it can be superimposed on some other video/still picture. If you have ever seen the weatherman stand in front of the map, then you have seen someone doing a blue screen technique. I would like to be able to capture video from my webcam, then send that video to a blue screen program which removes the white (or other color) from the background and then inserts a background of my own choosing. (think of the dead guy in freejack who was calling from all of the different places on earth) Then once the image is superimposed, I would like to pipe it into Skype for video conferencing. Anyone have a good way to do this?

    Read the article

  • How can I configure TomCat Java options in a config file?

    - by Kip
    I'm trying to configure Java options passed into TomCat for a 3rd party application that I'm deploying. The instructions that the app provides are: Open the Tomcat configuration tool from the Windows menu at Start All Programs Apache Tomcat Tomcat Configuration. Click Configure and select the Java tab. At the bottom of the Java Options field, enter the following: -Dexample.license.directory="C:\Program Files\example" Stop and restart the application server. However, I need to do this programmatically, so I'd like to know what config file these options can be set in. Using the GUI is impractical for deploying the app to other developers' environments. (I'm using Tomcat 6.0 if that is relevant...)

    Read the article

  • If statement causing xna sprites to draw frame by frame

    - by user1489599
    I’m a bit new to XNA but I wanted to write a simple program that would fire a cannon ball from a cannon at a 45 degree angle. It works fine outside of my keyboard i/o if statement, but when I encapsulate the code around an if statement checking to see if the user hits the space bar, the sprite will draw one frame at a time every time the space bar is hit. This is the code in question if (currentKeyboardState.IsKeyUp(Keys.Space) && previousKeyboardState.IsKeyDown(Keys.Space) && !skullBall.Alive) { //works outside the keyboard input if statement //{ skullBall.Position = cannon.Position; skullBall.DeltaY = -(float)(Math.Sin(MathHelper.ToRadians(45)) * 50/*39.7577*/ * time + 0.5 * (gravity * (time * time))); skullBall.DeltaX = (float)(Math.Cos(MathHelper.ToRadians(45)) * 50/*39.7577*/ * time); skullBall.Alive = true; //} } The skull ball represents the cannon ball and the cannon is just the starting point. DeltaX and DeltaY are the values I’m using to update the cannon balls position per update. I know it's dumb to have the cannon ball start at the cannons position every time the update is called but it’s not really noticeable right now. I was wondering if after examining my code, if anyone noticed any errors that would cause the sprite to display frame by frame instead of drawing it as a full animation of the cannon ball leaving the cannon and moving from there.

    Read the article

  • Can't read .cso files but I can read their .hlsl versions?

    - by Jader J Rivera
    Well I've been trying to read a .cso file to use as a shader for a DirectX program I'm currently making. Problem is no matter how I implemented a way to read the file it never worked. And after fidgeting around I discover that it's only the .cso files I can't read. I can read anything else (which means it works) even their .hlsl files. Which is strange because the .hlsl (high level shader language) files are supposed to turn into .cso (compiled shader object) files. What I'm currently doing is: vector<byte> Read(string File){ vector<byte> Text; fstream file(File, ios::in | ios::ate | ios::binary); if(file.is_open()){ Text.resize(file.tellg()); file.seekg(0 , ios::beg); file.read(reinterpret_cast<char*>(&Text[0]), Text.size()); file.close(); } return Text; }; If I then implement it. Read("VertexShader.hlsl"); //Works Read("VertexShader.cso"); //Doesn't Works?!?! And I need the .cso version of the shader to draw my sexy triangles. Without it my life and application will never continue and I have no idea what could be wrong. (I've also asked this at stack overflow but still no answers.)

    Read the article

  • google sitemap generator installation selinux

    - by adnan
    when i trying to install google sitemap generator i received this error Change security context of to system_u:object_r:httpd_modules_t install: WARNING: ignoring --context (-Z); this kernel is not SELinux-enabled Program files successfully copied. ./install.sh: line 488: 14284 Segmentation fault "$DEST_DIR/$BIN_DIR/$DAEMON_BIN" update_setting $update_setting_flags "apache_conf=$APACHE_CONF" "apache_group=$APACHE_GROUP" > /dev/null after choosing the submiting file settings i tried to unistall it & excute this getenforce try again but the same problem when i enter this dir /etc/sysconfig/selinux. it is not contain the selinux file my os centos 6 X86_64

    Read the article

  • Booting Linux from External HDD, with persistence

    - by Moriarty
    I am trying to install Linux, specifically Lubuntu or BackTrack 5 on an external HDD (Seagate FreeAgent GoFlex) but I have had no luck using YUMI, or Untebootin to get it working. I want the hard drive to be able to save the data within Linux (As in, If I install a program, it will stay there). I also tried doing this with a flash drive, which does boot, but it does not save data (I tried following Pendrive's tutorial on creating a casper-rw file and adding "persistent" to various files, but I cannot get it to save files. Basically, I just want a form of linux on a portable device that will save files and settings between boots Note: I do not have a CD to install from. Any help would be greatly appreciated, Thanks!

    Read the article

  • Alternate port numbers for Supermicro IPMI View software

    - by MC9000
    I'm using the IPMI View software to manage a SuperMicro server but would like to use alternate port #s within the program itself. In other words - If I use the web browser, it defaults to port 80 - While I can, say change that port to 12345 (or whatever) and type the IP address into the browser (like http://xxx.xxx.xxx.xxx:12345 ) that works just fine. However, in IPMIView, it will assume port 80 and load the browser with the IP (which, naturally, won't work, so I have to manually type in the alternate port #). I can deal with that. The clincher is if I use a port other than 623 for management - (say 55623 for example), the IPMIView will not find it. Same goes for the iKVM port #. Is there some place to specify this (to tell IPMIView to use the alternate port numbers), like a settings file? I'm running this from a Windows client.

    Read the article

  • Prevent Ultrabay HDD from ejecting on sleep

    - by Bryce Evans
    I have a lenovo T430s thinkpad with a small SSD primary drive and 500gb ultrabay drive. When I put the computer to sleep and then return, I get the message titled "problem ejecting < drive name " "Windows can't stop your 'Generic volume' device because a program is still using it." This pop up is very annoying every time every time I use the computer. I don't want to disable write caching [D:Hardware[drive]policiesquick removal] because I want best performance and never remove the drive. Any ways to avoid this pop up?

    Read the article

  • How do I get Windows 7 wallpaper to display the company logo properly?

    - by David Silva Smith
    Windows 7 is not displaying our company background properly. Curves show pixelation and straight lines are jagged. I'm working with a scalable vector graphics (SVG) image that I've exported to the same resolution (pixel dimensions, to be technical) as the desktop, which is 1440x900. I have tried exporting the image as a .png, .jpg, and .bmp. All of these look correct in an image viewing program, such as Windows Photo Viewer and Paint, but when I set the Windows background to these images, curves show pixelation and straight lines are jagged. Reading online, it seems that behind the scenes, Windows is converting the image to a .jpg with low quality compression, which is causing the issue. I've tried setting the image as a background through Internet Explorer, saving it as a .jpg, and putting the file in the Windows photo directory as suggested in some online forums, but none of those solutions have fixed my issue.

    Read the article

  • How can I find out which driver/file is being loaded when the system hangs during the Windows 7 boot

    - by user24247
    My desktop computer (1 OS, 1 drive, 1 partition) hangs during the Windows 7 boot process. When selecting F8 I can select Safe Boot which allows me to see the files processed during the boot process. I know that the last line displayed is the last file that was SUCCESFULLY loaded. How do I find out what the next line, and the potential candidate driver/file/program would have been? The unusual thing, at least in my experience, is that the freezing up of the system also happens when I boot from the Windows 7 install disks, which is preventing me from any repair options. With a failure of both, I cannot not restore Windows 7 to a previous date or uninstall drivers/programs that may be the cause of the hanging. Thanks for your responses. Marc

    Read the article

  • Were the first assemblers written in machine code?

    - by The111
    I am reading the book The Elements of Computing Systems: Building a Modern Computer from First Principles, which contains projects encompassing the build of a computer from boolean gates all the way to high level applications (in that order). The current project I'm working on is writing an assembler using a high level language of my choice, to translate from Hack assembly code to Hack machine code (Hack is the name of the hardware platform built in the previous chapters). Although the hardware has all been built in a simulator, I have tried to pretend that I am really constructing each level using only the tools available to me at that point in the real process. That said, it got me thinking. Using a high level language to write my assembler is certainly convenient, but for the very first assembler ever written (i.e. in history), wouldn't it need to be written in machine code, since that's all that existed at the time? And a correlated question... how about today? If a brand new CPU architecture comes out, with a brand new instruction set, and a brand new assembly syntax, how would the assembler be constructed? I'm assuming you could still use an existing high level language to generate binaries for the assembler program, since if you know the syntax of both the assembly and machine languages for your new platform, then the task of writing the assembler is really just a text analysis task and is not inherently related to that platform (i.e. needing to be written in that platform's machine language)... which is the very reason I am able to "cheat" while writing my Hack assembler in 2012, and use some preexisting high level language to help me out.

    Read the article

  • Code Behaviour via Unit Tests

    - by Dewald Galjaard
    Normal 0 false false false EN-ZA X-NONE X-NONE /* Style Definitions */ table.MsoNormalTable {mso-style-name:"Table Normal"; mso-tstyle-rowband-size:0; mso-tstyle-colband-size:0; mso-style-noshow:yes; mso-style-priority:99; mso-style-qformat:yes; mso-style-parent:""; mso-padding-alt:0cm 5.4pt 0cm 5.4pt; mso-para-margin-top:0cm; mso-para-margin-right:0cm; mso-para-margin-bottom:10.0pt; mso-para-margin-left:0cm; line-height:115%; mso-pagination:widow-orphan; font-size:11.0pt; font-family:"Calibri","sans-serif"; mso-ascii-font-family:Calibri; mso-ascii-theme-font:minor-latin; mso-fareast-font-family:"Times New Roman"; mso-fareast-theme-font:minor-fareast; mso-hansi-font-family:Calibri; mso-hansi-theme-font:minor-latin; mso-bidi-font-family:"Times New Roman"; mso-bidi-theme-font:minor-bidi;} Some four months ago my car started acting up. Symptoms included a sputtering as my car’s computer switched between gears intermittently. Imagine building up speed, then when you reach 80km/h the car magically and mysteriously decide to switch back to third or even second gear. Clearly it was confused! I managed to track down a technician, an expert in his field to help me out. As he fitted his handheld computer to some hidden port under the dash, he started to explain “These cars are quite intelligent, you know. When they sense something is wrong they run in a restrictive program which probably account for how you managed to drive here in the first place...”  I was surprised and thought this was certainly going to be an interesting test drive. The car ran smoothly down the first couple of stretches as the technician ran through routine checks. Then he said “Ok, all looking good. We need to start testing aspects of the gearbox. Inside the gearbox there are a couple of sensors. One of them is a speed sensor which talks to the computer, which in turn will decide which gear to switch to. The restrictive program avoid these sensors altogether and allow the computer to obtain its input from other [non-affected] sources”. Then, as soon as he forced the speed sensor to come back online the symptoms and ill behaviour re-emerged... What an incredible analogy for getting into a discussion on unit testing software? Besides I should probably put my ill fortune to some good use, right? This example provide a lot of insight into how and why we should conduct unit tests when writing code. More importantly, it captures what is easily and unfortunately often the most overlooked goal of writing unit tests by those new to the art and those who oppose it alike - The goal of writing unit tests is to test the behaviour of our code under predefined conditions. Although it is very possible to test the intrinsic workings of each and every component in your code, writing several tests for each method in practise will soon prove to be an exhausting and ultimately fruitless exercise given the certain and ever changing nature of business requirements. Consequently it is true and quite possible whilst conducting proper unit tests, to call any single method several times as you examine and contemplate different scenarios. Let’s write some code to demonstrate what I mean. In my example I make use of the Moq framework and NUnit to create my tests. Truly you can use whatever you’re comfortable with. First we’ll create an ISpeedSensor interface. This is to represent the speed sensor located in the gearbox.  Then we’ll create a Gearbox class which we’ll pass to a constructor when we instantiate an object of type Computer. All three are described below.   ISpeedSensor.cs namespace AutomaticVehicle {     public interface ISpeedSensor     {         int ReportCurrentSpeed();     } }   Gearbox.cs namespace AutomaticVehicle {      public class Gearbox     {         private ISpeedSensor _speedSensor;           public Gearbox( ISpeedSensor gearboxSpeedSensor )         {             _speedSensor = gearboxSpeedSensor;         }         /// <summary>         /// This method obtain it's reading from the speed sensor.         /// </summary>         /// <returns></returns>         public int ReportCurrentSpeed()         {             return _speedSensor.ReportCurrentSpeed();         }     } } Computer.cs namespace AutomaticVehicle {     public class Computer     {         private Gearbox _gearbox;         public Computer( Gearbox gearbox )         {                     }          public int GetCurrentSpeed()         {             return _gearbox.ReportCurrentSpeed( );         }     } } Since this post is about Unit testing, that is exactly what we’ll create next. Create a second project in your solution. I called mine AutomaticVehicleTests and I immediately referenced the respective nunit, moq and AutomaticVehicle dll’s. We’re going to write a test to examine what happens inside the Computer class. ComputerTests.cs namespace AutomaticVehicleTests {     [TestFixture]     public class ComputerTests     {         [Test]         public void Computer_Gearbox_SpeedSensor_DoesThrow()         {             // Mock ISpeedSensor in gearbox             Mock< ISpeedSensor > speedSensor = new Mock< ISpeedSensor >( );             speedSensor.Setup( n => n.ReportCurrentSpeed() ).Throws<Exception>();             Gearbox gearbox = new Gearbox( speedSensor.Object );               // Create Computer instance to test it's behaviour  towards an exception in gearbox             Computer carComputer = new Computer( gearbox );             // For simplicity let’s assume for now the car only travels at 60 km/h.             Assert.AreEqual( 60, carComputer.GetCurrentSpeed( ) );          }     } }   What is happening in this test? We have created a mocked object using the ISpeedsensor interface which we've passed to our Gearbox object. Notice that I created the mocked object using an interface, not the implementation. I’ll talk more about this in future posts but in short I do this to accentuate the fact that I'm not not really concerned with how SpeedSensor work internally at this particular point in time. Next I’ve gone ahead and created a scenario where I’ve declared the speed sensor in Gearbox to be faulty by forcing it to throw an exception should we ask Gearbox to report on its current speed. Sneaky, sneaky. This test is a simulation of how things may behave in the real world. Inevitability things break, whether it’s caused by mechanical failure, some logical error on your part or a fellow developer which didn’t consult the documentation (or the lack thereof ) - whether you’re calling a speed sensor, making a call to a database, calling a web service or just trying to write a file to disk. It’s a scenario I’ve created and this test is about how the code within the Computer instance will behave towards any such error as I’ve depicted. Now, if you’ve followed closely in my final assert method you would have noticed I did something quite unexpected. I might be getting ahead of myself now but I’m testing to see if the value returned is equal to what I expect it to be under perfect conditions – I’m not testing to see if an error has been thrown! Why is that? Well, in short this is TDD. Test Driven Development is about first writing your test to define the result we want, then to go back and change the implementation within your class to obtain the desired output (I need to make sure I can drive back to the repair shop. Remember? ) So let’s go ahead and run our test as is. It’s fails miserably... Good! Let’s go back to our Computer class and make a small change to the GetCurrentSpeed method.   Computer.cs public int GetCurrentSpeed() {   try   {     return _gearbox.ReportCurrentSpeed( );   }   catch   {     RunRestrictiveProgram( );   } }     This is a simple solution, I know, but it does provide a way to allow for different behaviour. You’re more than welcome to provide an implementation for RunRestrictiveProgram should you feel the need to. It's not within the scope of this post or related to the point I'm trying to make. What is important is to notice how the focus has shifted in our approach from how things can break - to how things behave when broken.   Happy coding!

    Read the article

< Previous Page | 511 512 513 514 515 516 517 518 519 520 521 522  | Next Page >