Add new posts and GPG page
This commit is contained in:
parent
9c8a4b0047
commit
e9859a904e
|
@ -9,37 +9,39 @@ title: GPG Public Key
|
||||||
## Proof of identity
|
## Proof of identity
|
||||||
|
|
||||||
As far as you can trust this website, this is a proof of my identity.
|
As far as you can trust this website, this is a proof of my identity.
|
||||||
|
|
||||||
-----BEGIN PGP SIGNED MESSAGE-----
|
-----BEGIN PGP SIGNED MESSAGE-----
|
||||||
Hash: SHA512
|
Hash: SHA512
|
||||||
|
|
||||||
Yes, I use GPG. This message is here to prove my identity to you.
|
My name is Ariejan de Vroom and I use GPG.
|
||||||
|
|
||||||
|
My public key information is:
|
||||||
|
ID: 0xF713697B
|
||||||
|
Fingerprint: 8450 D928 4373 164E 25CC 7E0D AD73 9154 F713 697B
|
||||||
-----BEGIN PGP SIGNATURE-----
|
-----BEGIN PGP SIGNATURE-----
|
||||||
Version: GnuPG/MacGPG2 v2.0.22 (Darwin)
|
Version: GnuPG/MacGPG2 v2.0.22 (Darwin)
|
||||||
Comment: GPGTools - https://gpgtools.org
|
Comment: GPGTools - https://gpgtools.org
|
||||||
|
|
||||||
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
|
||||||
=x5b0
|
=1VS2
|
||||||
-----END PGP SIGNATURE-----
|
-----END PGP SIGNATURE-----
|
||||||
|
|
|
@ -2,7 +2,6 @@
|
||||||
title: "Dealing With Technical Debt"
|
title: "Dealing With Technical Debt"
|
||||||
created_at: 2014-04-04 12:38:41 +0200
|
created_at: 2014-04-04 12:38:41 +0200
|
||||||
kind: article
|
kind: article
|
||||||
published: false
|
|
||||||
tags:
|
tags:
|
||||||
- programming
|
- programming
|
||||||
- craftsmanship
|
- craftsmanship
|
||||||
|
|
|
@ -0,0 +1,69 @@
|
||||||
|
---
|
||||||
|
title: "Testing $HOME with Cucumber and Aruba"
|
||||||
|
created_at: 2014-04-15 21:42:43 +0200
|
||||||
|
kind: article
|
||||||
|
published: true
|
||||||
|
tags:
|
||||||
|
- programming
|
||||||
|
- cucumber
|
||||||
|
- aruba
|
||||||
|
summary: |
|
||||||
|
Cucumber and Aruba make it awesome to write acceptance tests for your
|
||||||
|
command line programs. But how do you test your program interacting with
|
||||||
|
files from a user's <code>$HOME</code> directory?
|
||||||
|
---
|
||||||
|
[Cucumber][1] and [Aruba][2] are awesome tools to write acceptance tests for your command line application. The allow you to do things like this:
|
||||||
|
|
||||||
|
```
|
||||||
|
:::gherkin
|
||||||
|
Scenario: Exit with 0 when no examples are run
|
||||||
|
Given a file named "a_no_examples_spec.rb" with:
|
||||||
|
"""ruby
|
||||||
|
"""
|
||||||
|
When I run `rspec a_no_examples_spec.rb`
|
||||||
|
Then the exit status should be 0
|
||||||
|
And the output should contain "0 examples"
|
||||||
|
```
|
||||||
|
_This example was taken rspec-core._
|
||||||
|
|
||||||
|
Aruba basically does three things for you:
|
||||||
|
|
||||||
|
* Create and inspect files and directories
|
||||||
|
* Run commands
|
||||||
|
* Inspect output and exit status
|
||||||
|
|
||||||
|
## The problem
|
||||||
|
|
||||||
|
Now, if you are writing a CLI that interacts with a configuration file in the user's home directory, you'd write a cucumber like this:
|
||||||
|
|
||||||
|
```
|
||||||
|
:::gherkin
|
||||||
|
Scenario: use .my-app configuration
|
||||||
|
Given a file named "~/.my-app" with:
|
||||||
|
"""
|
||||||
|
awesome_enabled: true
|
||||||
|
"""
|
||||||
|
When I run `my-app`
|
||||||
|
Then the output should contain "AWESOME"
|
||||||
|
```
|
||||||
|
|
||||||
|
But how does your app and Aruba differentiate between this generated test file and your actual configration file in your home directory? It doens't.
|
||||||
|
|
||||||
|
## The answer
|
||||||
|
|
||||||
|
The solution is quite easy and elegant, in your `Before` set the `$HOME` environment variable to a custom location inside the `tmp/aruba` directory.
|
||||||
|
|
||||||
|
In `features/support/env.rb`:
|
||||||
|
|
||||||
|
```
|
||||||
|
:::ruby
|
||||||
|
Before do
|
||||||
|
set_env 'HOME', File.expand_path(File.join(current_dir, 'home'))
|
||||||
|
FileUtils.mkdir_p ENV['HOME']
|
||||||
|
end
|
||||||
|
```
|
||||||
|
|
||||||
|
This will set `$HOME` to `tmp/aruba/home` in the context of your cucumbers (and execute binary). `current_dir` automatically points to the right location for the aruba temporary directory.
|
||||||
|
|
||||||
|
[1]: https://github.com/cucumber/cucumber
|
||||||
|
[2]: https://github.com/cucumber/aruba
|
Loading…
Reference in New Issue
Block a user