testando o conteúdo de hash usando o rspec
<p>eu tenho um teste assim:</p><pre><code>it "should not indicate backwards jumps if the checker position is not a king" do board = board.new game\_board = board.create\_test\_board board.add\_checker(game\_board, :red, 3, 3) x\_coord = 3 y\_coord = 3 jump\_locations = {} jump\_locations["upper\_left"] = true jump\_locations["upper\_right"] = false jump\_locations["lower\_left"] = false jump\_locations["lower\_right"] = true adjusted\_jump\_locations = @bs.adjust\_jump\_locations\_if\_not\_king(game\_board, x\_coord, y\_coord, jump\_locations) adjusted\_jump\_locations["upper\_left"].should == true adjusted\_jump\_locations["upper\_right"].should == false adjusted\_jump\_locations["lower\_left"].should == false adjusted\_jump\_locations["lower\_right"].should == false end </code></pre><p>que, eu sei, é detalhado. existe uma maneira mais concisa de expressar minhas expectativas. examinei os documentos, mas não consigo ver onde comprimir minhas expectativas. obrigado.</p>
<p> <a href="http://rubydoc.info/gems/rspec-expectations/rspec/matchers:include">http://rubydoc.info/gems/rspec-expectations/rspec/matchers:include</a> </p><p>também funciona para hashes:</p><pre><code>jump\_locations.should include( "upper\_left" =&gt; true, "upper\_right" =&gt; false, "lower\_left" =&gt; false, "lower\_right" =&gt; true ) </code></pre>
<p>olá valdiney, é para você fazer uma variação de código.</p>
<p>usar sua curiosidade e criatividade, variar, não se prender só ao que foi pedido, tipo:</p>
<p></p>fazendo diferente:
<strong> teste 1 </strong>
<strong> teste 2 </strong>
<strong> teste 3 </strong>
<p></p>
<p></p> boa tarde, elias. precisa dentro do while. porém nesse caso seria interessante você usar o do{}while(), onde primeiro você informaria todos os dados e depois fária o teste. não irei colocar seu cód... <p>o problema é que o preparefortest deve ser para a classe que vai ser manipulada, que no caso é a teste, e não a scanner.</p>
<p>o seguinte teste funcionou perfeitamente (e deu erro quando gravo a expectativa errada, o que é sempre um bom teste do teste :-) ) :</p>
<p>&#64;runwith(powermockrunner.class)
&#64;preparefortest({ teste.class })
public class testetest {</p>
<p> &#64;injectmocks
 private teste teste;</p>
<p> &#64;mock
 private scanner scanner;</p>
<p> &#64;test
 public void shouldstart() throws exception {
 mockito.when(scanner.hasnext()).thenreturn(true);
 boolean resultado &#61; scanner.hasnext();</p>
<p> assertthat(resultado, is(true));
 }</p>
<p>}</p> <p>oi felipe, blz?</p>
<p>o writehead() serve para passar os headers http corretos conforme a regra de negócio.</p>
<p>caso ele não seja passado, o cliente não tem como saber o tipo do retorno.</p>
<p>o que acontece é que o navegador é um cliente bastante inteligente e ele já consegue inferir que o tipo do documento é um html, mesmo sem a informação do content-type, pq o seu conteudo inicia com a tag <code>html</code>.</p>
<p>caso a url seja acessada a partir de um cliente que não faz esse tratamento, ele exibiria um texto plano.</p>
<p>você pode fazer um teste para validar essa resposta alterando o conteudo da resposta para que ele não mais inicie com a tag <code>html</code>.</p>
<p>se vc fizer isso, verá que o navegador passa a exibir o conteudo como texto plano normal.</p>
<p>depois compartilha aqui se a explicação te ajudou. &#61;)</p> <p>usando <a href="http://ruby-doc.org/core-1.9.3/string.html#method-i-scan"><code>scan</code></a> deve fazer o truque:</p><pre><code>string.scan(/regex/) </code></pre> <p>oi leonardo,</p>
<p>que máximo :)</p>
<p>acredito que os textos estão bem direto ao ponto, minha sugestão é inverter a ordem, visão lá para baixo e a parte do par tim pim baby é divertido estar na moda lá para cima :)</p> Opção 1 é de longe o padrão. A fraqueza texto simples geralmente é superado pela aplicação SSL durante o login para que a senha é, pelo menos criptografados durante o trânsito.


**Edit:** Eu sugiro que você siga a resposta aceitos para essa pergunta.


Não se esqueça de exigir um [nonce](http://en.wikipedia.org/wiki/Cryptographic_nonce) para o seu pedido. Isso ajudará a protegê-lo contra ataques de repetição.


**Editar o segundo:** Wayne cuidadosamente mencionou que você deve [sal](https://stackoverflow.com/questions/674904/salting-your-password-best-practices) sua senha antes de hash. Aqui estão algumas dicas básicas:


1. Não importa se o seu sal é um prefixo, postfix, ou infix
2. Seu sal deve ser grande, aleatório, e complexo.
3. Seu sal deve ser único por valor salgada. O sal em si não precisa ser criptografados. <p>o randomart deve ser uma maneira mais fácil para os humanos validarem as chaves.</p><p>a validação é normalmente feita por uma comparação de sequências sem sentido (isto é, a representação hexadecimal da impressão digital da chave), que os humanos são bastante lentos e imprecisos na comparação. o randomart substitui isso por imagens estruturadas que são mais rápidas e fáceis de comparar.</p><p>este documento <a href="http://www.ece.cmu.edu/~adrian/projects/validation/validation.pdf">&quot;hash visualization: uma nova técnica para melhorar a segurança do mundo real&quot;, perrig a. e song d., 1999, workshop internacional sobre técnicas criptográficas e e-commerce (cryptec '99) &quot;</a> explica algumas técnicas e vantagens.</p> Você pode usar [`RuntimeHelpers.GetHashCode(object)`](http://msdn.microsoft.com/en-us/library/11tbk3h9.aspx)o que exige `object.GetHashCode()`não virtualmente - este é o equivalente a `System.identityHashcode`em Java. Eu acho que é isso que você está depois. Portanto, o seu `IEqualityComparer`iria usar apenas que para hash e`object.ReferenceEquals` de igualdade. quando se trata de jogos o melhor seria passa os jogos pra verifica se alguém já conseguiu faze ele roda no linux ou no caso vocês pode pesquisar mesmo ai já pode aprende a como tira sua dúvida em jogos que queira joga.