0
public Double Invert(Double? id)
{
    return (Double)(id / id);
}

私はこのテストのためにこれを行いましたが、失敗しましたユニットテストを始めたばかりのこのcosについて誰か助けてください

/* HINT:  Remember that you are passing Invert an *integer* so
 * the value of 1 / input is calculated using integer arithmetic. 
 * */
//Arrange
var controller = new UrlParameterController();
int input = 7;
Double expected = 0.143d;
Double marginOfError = 0.001d;

//Act
var result = controller.Invert(input);

//Assert
Assert.AreEqual(expected, result, marginOfError);

/* NOTE  This time we use a different Assert.AreEqual() method, which
 * checks whether or not two Double values are within a specified
 * distance of one another.  This is a good way to deal with rounding
 * errors from floating point arithmetic.  Without the marginOfError 
 * parameter the assertion fails.
 * */  
4

2 に答える 2

2

コントローラーをテストして値を「反転」させたいようです。値をそれ自体で除算していない場合は、おそらく役立つでしょう。

発生する可能性のある唯一のことは次のとおりです。

  1. 「1」の結果が得られます (ヒント、ヒント)
  2. 「NaN」( 0/0 )を取得します
  3. null を渡すと、キャスト エラーが発生します。
于 2012-11-03T22:59:06.573 に答える
0

コードサンプルを調べてみると、探しているのはコントローラーの逆メソッドだと思います。

public Double Invert(Double? id)
{
    //replace id with 1 -- (1/id) gives you an inverse of id.  
    return (Double)(1 / id);
}
于 2012-11-04T06:54:17.317 に答える