私はjava/kotlinを使い慣れました。KotlinクラスインスタンスassertEqual
class FactoryTest {
@Test
fun testFactorySuccess() {
val args = arrayOf("place", "WEST", "1", "1")
Assert.assertEqual(PlaceCommand(*args), Factory(args) as PlaceCommand)
# or
Assert.assertTrue(PlaceCommand(*args).equal(Factory(args) as PlaceCommand))
}
// ...
}
ありがとう:のようなものに
class FactoryTest {
@Test
fun testFactorySuccess() {
val args = arrayOf("place", "WEST", "1", "1")
val a = PlaceCommand(*args)
val b = Factory(args) as PlaceCommand
Assert.assertTrue(a.x.equals(b.x))
Assert.assertTrue(a.y.equals(b.y))
Assert.assertTrue(a.direction.equals(b.direction))
}
// ...
}
:
class PlaceCommand(vararg args: String) : ICommand {
var direction: Direction = Direction.valueOf(args[1].toUpperCase())
var x: Int = args[2].toInt()
var y: Int = args[3].toInt()
// ...
}
回すためには何が必要です変更:私は、次のクラスに平等を主張したいと思います。
btw、この場合の 'vararg'を使うことは恐ろしい考えのようです。あなたは何も得ておらず、そうでなければタイプ情報が失われます – voddan
私はあなたの見方に同意します。コードを見てみましょう:https://github.com/jamesmoriarty/kotlin-robot/blob/master/src/test/CommandFactoryTest.kt – Moriarty
'Command'ファクトリを除いて、すべて正常に見えます。私は、文字列の配列を内部的に使用し、型付きの値に変換する理由を想像することはできません。 – voddan